mysql 创建索引需要注意的5个细节

时间:2016-03-28
创建mysql索引时需要注意以下5个细节:建立索引的时机、对于like、对于有多个条件的、开启索引缓存、建立索引是有代价的等等,感兴趣的码农可以参考一下。

1.建立索引的时机:若表中的某字段出现在select、过滤、排序条件中,为该字段建立索引是值得的。 

2.对于like '%xxx'的模糊查询,普通的索引是无法满足的,需要建立全文索引。 

3.对于有多个条件的,比如: "...where a=xxx and b=yyy","...where a=xxx order by b","...where a=xxx group by b"。需要使用组合索引。但是组合索引只能在SQL语句中满足"最左前缀"的条件下使用。且组合索引有一些副作用,如索引尺寸可能比数据本身大,因为组合索引的组合条目多。所以在实际应用中,要量身定做,使用慢查询分析工具分析。 

4.开启索引缓存,直接在内存中查找索引,不用再磁盘中。 

5.建立索引是有代价的,当update、delete语句执行时,会使得索引更新,将耗掉更多的时间。可以使用mysqlreport报告,了解select、update、delete、insert、replace各语句所占的百分比。