您的位置:首页 > 其它

什么时候用索引呢?怎么创建呢?又是什么时候导致索引失效呢?

2018-10-18 23:12 513 查看

面试不会的,总结下

平常项目中用到的索引很少,什么字段该设置索引呢?

MySQL的创建索引的原则

http://www.cnblogs.com/helloworldlx/p/8651583.html

mysql优化(索引创建规则)

https://blog.csdn.net/u010178308/article/details/80484383

1.经常作为查询条件的列;

2.经常作为排序条件的列;

3.经常作为加入条件的列;

4.经常被查询的列。

不适合设置索引的

1.数据频繁被修改的列,数据被修改,索引需要做相应的修改,消耗资源;

2.区分度不是很高的列,如性别,列值重复性太大,索引效果不是很明显;

3.不是经常被作为查询条件,排序条件,连接条件的列。

索引的注意事项

1.列上进行函数计算将不会使用索引;

2.对于创建索引的列,避免存储NULL,NULL会使索引更加复杂,效率变低,可以使用NOT NULL进行约束;

3.对于模糊查询,如 '%ABC%',将不会使用索引,而不是 'ABC%' 将会使用索引;

4.对于不在,不存在等负向查询将不会使用索引!;

5.每次查询只使用一个索引,如果条件使用了索引,将由不再使用索引;

6.对于其中子句中有多个查询条件的,单列索引的效率不如复合索引,因为查询每次只能使用一个索引;

7.MySQL只对以下操作符才使用索引:<,<=,=,>,> =,之间,在,但是需要注意在的范围值不要太多;

8.union all可以使用索引,但本身效率不是很高,不建议使用;

9.列上进行类型转换的将不会使用索引;

10.老版本的MySQL的对OR条件不使用索引,新版本才支持,不建议使用OR。

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: