索引用于快速查找具有特定列值的行。没有索引,MySQL必须从第一行开始,然后通读整个表以找到相关的行。如果表中有相关列的索引,MySQL可以快速确定要在数据文件中间查找的位置,而不必查看所有数据。这比顺序读取每一行要快得多。
InnoDB和MyIsam只支持Btree,因此默认均是Btree,Memory和Heap支持Hash和Btree,如无明确声明,则默认索引均是Hash(包括主键)。
1.Mysql有哪些常用的索引
主键索引:数据列不允许重复,不允许为null,一个表只能有一个主键。
唯一索引:数据列不允许重复,允许为null,一个表允许多个列创建唯一索引。
普通索引:基本的索引类型,没有唯一性的限制,允许为null。
全文索引:全文索引是目前实现大数据搜索的关键技术。
2.Mysql索引的建立原则
Mysql的索引遵循最左原则,在创建多列索引时,要根据业务需求,where条件中使用最频繁的一列放在最左边。