Login
网站首页 > 文章中心 > 其它

mysql 两表联查分页排序效率优化

作者:小编 更新时间:2023-10-08 10:24:25 浏览量:224人看过

mysql 两表联查分页排序效率优化-图1

数据库中有两张表

t1 存储消息信息

+-----------+------------------+------+-----+---------+----------------+
| Field     | Type             | Null | Key | Default | Extra          |
+-----------+------------------+------+-----+---------+----------------+
| id        | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| code | int(10) unsigned | NO   | MUL | NULL    |                |
| detail    | varchar(200)     | NO   |     | NULL    |                |
| object    | varchar(50)      | NO   |     | NULL    |                |
| create_at | datetime         | NO   |     | NULL    |                |
+-----------+------------------+------+-----+---------+----------------+
+--------------+---------------------+------+-----+---------+----------------+
| Field        | Type                | Null | Key | Default | Extra          |
+--------------+---------------------+------+-----+---------+----------------+
| code    | int(10) unsigned    | NO   | PRI | NULL    | auto_increment |
| level        | tinyint(3) unsigned | NO   | MUL | NULL    |                |
| type         | varchar(30)         | NO   |     | NULL    |                |
| content      | varchar(50)         | NO   |     | NULL    |                |
| status       | tinyint(3) unsigned | NO   |     | NULL    |                |
+--------------+---------------------+------+-----+---------+----------------+

现在需要对这两张表进行分页排序联查.

写了三种查询语句如下:

1)最慢
select t1.*, t2.* from t1, t2 where t1.code = t2.code order by t1.create_at desc limit 1065701,20;
耗时:14.48秒

2)使用left join
SELECT t1.*,t2.level AS level, t2.content AS content FROM t1left join t2on t1.code=t2.code order by create_at desc limit 1065701,20;
耗时:9.71秒

3)先查缩小t1表中的范围,再和t2表进行联查
select t1.*, t2.level AS level, t2.content AS content FROM t1 left join t2 on t1.code=t2.code join (SELECT id from t1 order by create_at desc limit 1065721,20)t where t.id=t1.id;
耗时:1.41秒

总结:

不知道还有没有更好的优化方式,还请大牛指导:)

以上就是土嘎嘎小编为大家整理的mysql 两表联查分页排序效率优化相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章