mysql索引在数据库中非常的重要了,数据加没索引对于我们网站性能有巨大的区别了,今天我们来看一篇关于MySQL数据库索引的介绍。
什么是索引
索引是存储引擎用于快速找到记录的一种数据结构,索引类似一本书的目录,我们根据目录可以快速的查找到我们感兴趣的内容。索引就是存储引擎的目录,如果没有索引存储引擎必须遍历整个数据库表来查询符合条件的记录,索引的建立和优化应该是提升查询性能最有效的手段了。
索引的类型
索引是在MYSQL的存储引擎层中实现的,而不是在服务层实现的。所以每种存储引擎的索引都不一定完全相同,也不是所有的存储引擎都支持所有的索引类型。即使多个存储引擎支持同一种类型的索引,其底层实现也可能不同。
B-Tree索引
B-Tree是MyISAM和InnoDB引擎默认索引类型,也可以在创建索引时通过USING BTTREE来显示指定。B-Tree是一种多叉平衡树,B-Tree 结构可以显著减少定位记录时所经历的中间过程,从而加快存取速度。一般用于数据库的索引,综合效率较高。
B-Tree索引的应用场景
等值匹配
可用于= != <> IN NOT IN <=>查询语句的优化
范围匹配
可用于 > >= < <= BTEWEEN AND等范围查询语句的优化
匹配最左前缀
对于 name like bai% 这种后模糊匹配的查询,是可以利用name字段上建立的索引来优化查询的,但是对于name like