百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> 百万数据下mysql前提查询及分页查询的注意事项
分享文章到:

百万数据下mysql前提查询及分页查询的注意事项

发布时间:08/01 来源:未知 浏览: 关键词:
接上一节《百万数据mysql分页题目》,我们加上查询前提:selectidfromnewswherecate1orderbyiddesclimit500000,10查询工夫20秒 接上一节《百万数据mysql分页题目》,我们加上查询前提:

select id from news 
where cate = 1
order by id desc 
limit 500000 ,10 
查询工夫 20 秒

好恐怖的速度!!应用首先节《百万数据mysql数据测试环境介绍》见识进行优化:

select * from news
where cate = 1 and id > (select id from news where cate = 1 order by id desc limit 500000,1 ) 
order by id desc 
limit 0,10 
查询工夫 15 秒

优化结果不显明,前提带来的影响还是很大!在这样的状况下不管我们怎么去优化sql语句就没法解决运转效率题目。那么换个思绪:创立一个索引表,只记载文章的id、分类信息,我们将文章内容这个大字段分割出去。

表 news2 [ 文章表 引擎 myisam 字符集 utf-8 ]
-------------------------------------------------
idint11主键主动添加
cateint11索引

在写入数据时将2张表同步,查询是则可以运用news2 来进行前提查询:

select * from news
where cate = 1 and id > (select id from news2 where cate = 1 order by id desc limit 500000,1 ) 
order by id desc 
limit 0,10

注意前提 id > 背面运用了news2 这张表!

运转工夫 1.23秒,我们可以看到运转工夫缩减了近20倍!!数据在10万摆布是查询工夫可以维持在0.5秒摆布,是一个逐渐接近我们能够容忍的值!

但是1秒关于办事器来说仍然是一个不克不及承受的值!!还有什么可以优化的方法吗??我们尝试了一个伟大的变化:

将 news2 的存储引擎转变为innodb,施行效果是惊人的!

select * from news
where cate = 1 and id > (select id from news2 where cate = 1 order by id desc limit 500000,1 ) 
order by id desc 
limit 0,10

只需要 0.2秒,非常棒的速度。为何会有怎么大的差别呢?请不雅看下一篇 mysql存储引擎详解。

以上就是百万数据下mysql前提查询及分页查询的注意事项的细致内容,更多请关注 百分百源码网 其它相干文章!

打赏

打赏

取消

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

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

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

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有151人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板