MySQL分页优化


当前第2页 返回上一页

大概3s多,比第一种方案快了差不多10倍,效果显著。

下面来看看其执行计划(explain extended)

 总结:

1. 改写后的语句原本如下:

代码如下:
FROM upay_csys_scquery_txn_log_his a1  LEFT JOIN upay_csys_trans_code a2 on(a1.int_trans_code=a2.trans_code) where seq_id in (select seq_id FROM upay_csys_scquery_txn_log_his a1  WHERE STATUS<>'00' AND settle_date=20151230 order by 1 limit 50000,10000);
但MySQL报以下错误:

代码如下:
ERROR 1235 (42000): This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
需再增加一个嵌套子查询,

比如这样的语句是不能正确执行的。

代码如下:
select * from table where id in (select id from table limit 12);

但是,只要你再加一层就行。如:

代码如下:
select * from table where id in (select t.id from (select * from table limit 12)as t)

这样就可以绕开limit子查询的问题。
问题解决。

2. 如果想查看MySQL查询优化器等价改写后的SQL语句,可首先通过explain extended得到具体的执行计划,然后通过show warnings查看。

具体在本例中,等价改写后的SQL语句如下:

与设想中的执行顺序一致~

3. 如何查看MySQL语句各步骤的执行时间。

以上就是本文的全部内容,希望对大家MySQL分页优化有所帮助。

更多相关Mysql内容来自木庄网络博客


标签:Mysql

返回前面的内容

相关阅读 >>

mysql中如何实现按照特定顺序排序

上篇 mysql 语句加锁分析

mysql中的注意事项具体分析

mysql的表空间是什么

mysql如何使用aes_encrypt()与aes_decrypt()进行加解密的示例

mysql自动获取时间日期的方法

mysql中b树索引和b+树索引的区别详解

mysql如何进行多表查询

mysql运行sql文件时出现问题怎么办

wamp中如何打开mysql

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...