mysql 多条件查询优化_MySQL 多条件多排序查询优化
发布日期:2021-06-24 15:50:26 浏览次数:2 分类:技术文章

本文共 667 字,大约阅读时间需要 2 分钟。

首先要说你建的索引是有问题的,where条件字段和order字段顺序影响很大,并且是不是需要把所有字段都加进去也有待商榷,你首先要确认你的结果集有多少(不进行limit的时候),如果结果集比较小的话,首选索引字段就是where条件里面的字段,就比如你的article_category_id、review_status、is_delete这三个字段,按照筛选率决定索引字段的顺序,筛选率高放在前面,如果排序时间还是很长的话那就把你的排序字段再加到索引里,记住要按顺序放在where字段的后面,一定。另一种情况如果你的结果集很大的话,比如已经占到了整表数据的很大一部分了,这时候limit就有用了,这时候按照排序字段加索引就比较合适了,再limit的作用下只需要找到满足条件的limit数目的记录即可,再差点你把where条件的字段加在排序字段后面会更快一点。不过看你的结果是把where条件字段加在了order字段后面,效率更低,这就说明了where条件的筛选率还是比较高的,才会导致按照排序索引的检索效率更差,所以综上所述:按照article_category_id、review_status、is_delete这三个字段价格索引应该就满足你需求了,不嫌索引占地方就把排序字段也加后面也没关系,就是这样article_category_id,review_status,is_delete,is_stick,release_time,update_time组成一个超大索引

说的有点多,不知道说明白没有。。也不知道你能不能看懂。。

转载地址:https://blog.csdn.net/weixin_33642922/article/details/113229357 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:mysql 5.7 io 性能 aio_(转)【干货】MySQL 5.7 多实例(多进程)配置教程
下一篇:mysql ndb存储引擎_mysql存储引擎memory,ndb,innodb之选择

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月07日 11时51分53秒