当使用左或者左右模糊匹配时,like%XX或者like%XX%都会导致失效
当查询条件会索引列做计算、函数、类型转换操作也会失效
不符合最左匹配原则
在where字句中,or前的条件列是索引列,而or后的不是
设置NOTNULL约束
原因:索引列存在NULL会导致优化器在做索引选择时会复杂,NULL会使索引统计和值比较复杂,如count会省略值为NULL行
NULL值没有意义,还会占用物理空间,带来存储空间的问题,如InnoDB存储记录时,至少会用1字节空间存储NULL值列表。
当使用左或者左右模糊匹配时,like%XX或者like%XX%都会导致失效
当查询条件会索引列做计算、函数、类型转换操作也会失效
不符合最左匹配原则
在where字句中,or前的条件列是索引列,而or后的不是
设置NOTNULL约束
原因:索引列存在NULL会导致优化器在做索引选择时会复杂,NULL会使索引统计和值比较复杂,如count会省略值为NULL行
NULL值没有意义,还会占用物理空间,带来存储空间的问题,如InnoDB存储记录时,至少会用1字节空间存储NULL值列表。