当前位置:Gxlcms > 数据库问题 > MYSQL 索引类型、什么情况下用不上索引、什么情况下不推荐使用索引

MYSQL 索引类型、什么情况下用不上索引、什么情况下不推荐使用索引

时间:2021-07-01 10:21:17 帮助过:14人阅读

2.对于多列索引,不是使用的第一部分,则不会使用索引

3.like查询是以%开头

技术分享

4.存在索引列的数据类型隐形转换,则用不上索引,比如列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引

技术分享

5. where 子句里对索引列上有数学运算,用不上索引

技术分享

6. where 子句里对有索引列使用函数,用不上索引

技术分享 

7.如果mysql估计使用全表扫描要比使用索引快,则不使用索引

比如数据量极少的表

什么情况下不推荐使用索引?

1) 数据唯一性差(一个字段的取值只有几种时)的字段不要使用索引

比如性别,只有两种可能数据。意味着索引的二叉树级别少,多是平级。这样的二叉树查找无异于全表扫描。

2) 频繁更新的字段不要使用索引

比如logincount登录次数,频繁变化导致索引也频繁变化,增大数据库工作量,降低效率。

3) 字段不在where语句出现时不要添加索引,如果where后含IS NULL /IS NOT NULL/ like ‘%输入符%’等条件,不建议使用索引

只有在where语句出现,mysql才会去使用索引

4) where 子句里对索引列使用不等于(<>),使用索引效果一般

 

 

使用覆盖索引,提高查询效率

覆盖索引(covering index):MySQL只需要通过索引就可以返回查询所需要的数据,而不必在查到索引之后再去查询数据

具体请参考:

https://xiaobin.net/201109/strange-sql-performance-problem/

 

MySQL性能优化的最佳21条经验

请直接参考:

http://blog.csdn.net/kaka1121/article/details/53395587


MySql的优化步骤

请直接参考:

http://www.cnblogs.com/hongfei/archive/2012/10/19/2731342.html

 

其他一些关于mysql的博文

http://www.cnblogs.com/hongfei/category/349096.html

 

参考文章:

http://www.jb51.net/article/49346.htm

http://www.cnblogs.com/hongfei/archive/2012/10/20/2732589.html

https://xiaobin.net/201109/strange-sql-performance-problem/

http://www.cnblogs.com/hongfei/archive/2012/10/19/2731342.html

MYSQL 索引类型、什么情况下用不上索引、什么情况下不推荐使用索引

标签:char   str   不同的   字段   sel   开头   href   使用   数据库表   

人气教程排行