不建议使用 force index()索引,使用联合索引就可以解决问题!!!

  最近解决mysql慢查询问题,先把sql大概说明下 

    select id from table where type = 1 and XX= xx and XX1= xx1 and XX2 = xx2  order by time desc

  再说一下背景,之前的开发人员建了两个索引 index_type和index_time, 结果mysql 一直是按照index_time索引来查找的,查询比较慢,后来有人想到用force index(index_type)解决,这样指定按照某个索引来查询,查询效率很高。但是指定索引就带来维护成本,比如哪天数据库改动需要删除索引index_type,如果忘记修改程序,程序必然会报错。

    最后是通过联合索引解决的,删除index_type,新建一个联合索引index_type_time,这样就很好的解决了问题。

    遇到的问题,记录下来,如果不小心帮到你了,倍感荣幸,欢迎批评指正讨论。欢迎关注我的微信公众号:javaSharing。

不建议使用 force index()索引,使用联合索引就可以解决问题!!!_第1张图片

 

你可能感兴趣的:(数据库,mysql)