常见的4种方法解决MySQL查询慢

第一种:分页查询(框架自带的分页查询)

1)这种框架自带的分页方法,有时候数据量一多就会比较慢,所以一定要自己些查询sql语句。 我在项目中就遇到一个这样的问题,两个表关联分页查询,因为我使用的是inner join进行的关联,导致仅有43万的数据,查询了5秒多,后改为left join,用时1.2秒!

第二种:添加索引

根据查看执行计划,对查询条件添加对应的索引!

第三种: 使用limit

如果你知道查出来的数据的条数,就可以使用limit numb; 我在项目中遇到了一个问题,两个表关联查询,因为数据量很大,所以查询速度很慢,但是我知道只会查出一条数据,我就使用了 select * from table where code = xxxx limit 1; 速度仅用了不到1秒;

第四种: 分页查询(自己获取limit的起始位置)

框架的分页查询,必然会有count查询,因为他要计算总页数,但是这样有时候会导致查询比较慢。我们可以和前端约定好,不展示页码,只保留上一页和下一页。这样我们就可以通过计算页码的起始位置和结束位置来自己分页查询了。

举例:

// 获取起始位置

publicstaticIntegergetStartIndex(Integer pageNo,Integer pageSize){

return(pageNo -1) * pageSize;

sql:  select * from table limit startIndex, pageSize;


所以,我们在解决问题时候,要根据不同的业务场景,使用不同的办法解决。如果使用了分页还是慢的话,就要查看自己的MySQL语句是否有问题!通过查看执行计划进行分析。

创新互联还分享了4招MySQL慢查询问题排查方法

网页标题:常见的4种方法解决MySQL查询慢
文章起源:https://www.cdcxhl.com/article34/isgcpe.html

成都网站建设公司_创新互联,为您提供网站设计动态网站外贸网站建设网页设计公司微信公众号网站改版

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

小程序开发