时间: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/
请直接参考:
http://blog.csdn.net/kaka1121/article/details/53395587
请直接参考:
http://www.cnblogs.com/hongfei/archive/2012/10/19/2731342.html
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 使用 数据库表