MySQL索引的基本语法
定义主键约束、外键约束、唯一约束等约束时,相当于同时在指定列上创建了一个索引。
创建表时
表已经存在时
第一种
第二种
删除索引
查看MySQL中的索引
索引的生效
只要创建了索引,就一定会生效吗?
不一定,当使用组合索引时,如果没有遵循最左匹配原则,索引不生效。
例如,创建id,name,age
组合索引时:
id
、(id, name)
、(id, name, age)
查询,索引生效age
、(age, name)
查询,索引不生效这样判断索引是否生效
使用
explain
关键字。
possible_keys
:MySQL在搜索记录时可选用的各个索引key
:MySQL实际选用的索引
怎么避免索引失效?
使用组合索引时,遵循最左匹配原则
不在索引列上进行任何操作,比如:计算、函数、类型转换
尽量使用覆盖索引索引列,尽量不使用不等于条件
!= / <>
、通配符开头的模糊查询(like %abc
)、or作为连接条件字符串加单引号(不加可能会发生索引列的隐式转换,导致索引失败)
Last updated