MySQL
索引失效
NULL
- 索引是有序的,
NULL是不确定值,无法确定其在索引中位置,使用IS NULL/IS NOT NULL可能会使索引失效- 如果字段不允许为空,则
IS NULL/IS NOT NULL会使索引失效 - 如果字段允许为空,则
IS NULL走ref类型的索引,而IS NOT NULL走range类型的索引
- 如果字段不允许为空,则
- 如果需要把
NULL存入索引,方法有二,其一,把NULL值转为一个特定的值,在WHERE中检索时,用该特定值查找;其二,建立一个复合索引。例如ALTER TABLE FOO CREATE INDEX IDX_BAR(COL_1, 1)