先说下索引的缺点:
-
占用磁盘空间
-
增加了插入和删除操作时间,一个表拥有的索引越多,插入和删除的速度越慢,如要求快速录入的系统则不建议建过多的索引
一些常见的索引限制问题:
-
使用不等于操作符 <> != 符号操作
-
使用is null 或 is not null 因为数据库并没有定义null值,如果被索引的列种有很多null值,就不会使用这个索引,在sql语句中使用索引会造成很多麻烦,一半解决的办法就是在建表的时候如果某些字段需要使用索引 则要把这个字段设置为非空。
-
使用函数也会造成索引失效
-
比较不匹配的数据类型
-
如果是like语句的查询 如果通配符%放到了前面 例如%name则也会放弃使用索引