加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql条件及分页查询注意浅析

发布时间:2023-09-07 14:39:56 所属栏目:MySql教程 来源:
导读:本文主要给大家简单讲讲mysql条件及分页查询注意简析,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔mysql条件及分页查询注意简析主题吧,希望可以给大家带来一些实际帮助。
本文主要给大家简单讲讲mysql条件及分页查询注意简析,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔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、分类信息,我们将文章内容这个大字段分割出去。
 
mysql条件及分页查询注意简析
 
表 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存储引擎详解。
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章