mysql索引的常见问题

分类

索引主要分为多列索引 单列索引

这两种索引可以都可以是唯一的

另外 还有主键索引

失效

存在or条件中的字段没有加索引

多列索引没有使用的第一部分

like语句以%开头

存在索引列数据的隐形转化 如果列上是字符串 查询的时候没有加引号

where子句里面对索引存在数学计算

对索引列使用函数

索引列存在null

mysql估计全表扫描比使用索引的时间短,比如数据极少的表

什么情况下不推荐索引

数据唯一性差

频繁更新的字段

字段不在where语句出现

其他

覆盖索引

innodb myisam

优化 in or 查询

in or 的散列值替换成

1
2
3
4
(select)
union all
(select)
order...

in or 的子查询 如果子查询很大用 exist

1
2
3
select
where not exists
()

相关

索引相关 http://m.blog.csdn.net/kaka1121/article/details/53395628

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