百万数据下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、分类信息,我们将文章内容这个大字段分割出去。

表 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条件查询及分页查询的注意事项的详细内容,更多请关注php中文网其它相关文章!

主题测试文章,只做测试使用。发布者:云大使,转转请注明出处:https://www.xp8.net/data/3554.html

赞 (0)
打赏 微信扫一扫 微信扫一扫
上一篇 2019年4月24日 下午11:25
mysql存储引擎:myIsam和innodb的区别-mysql教程-
下一篇 2019年4月24日 下午11:25

相关推荐

  • MySQL如何导入格式化数据-mysql教程-学派吧

    在MySQL中如何导入格式化数据?本篇文章就来给大家介绍MySQL导入格式化数据的方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 在有些场景下,我们需要把一批特定格式的数据导入到mysql数据库中,做法有很多,使用shell脚本、python都可以,今天来介绍两个更便捷的命令,mysqlimport 和 load data mysqli…

    数据库运维 2019年4月9日
    3.1K00
  • MySQL和Redis事务的比较(图文)-mysql教程-学派吧

    本篇文章给大家带来的内容是关于MySQL和Redis事务的比较(图文),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 简言:一般来说,事务是必须满足4个条件(ACID)::原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。 从标题来看,既…

    2019年4月9日
    2.6K00
  • 腾讯云数据库通过 CLB 开启外网服务进行连接

    数据库 MySQL 支持内网和外网两种地址类型,默认提供内网地址供您内部访问实例,如果需要使用外网访问,除了开启外网地址后,通过 Linux 或者 Windows 云服务器连接访问实例,也可通过负载均衡 CLB 开启外网服务进行访问,通过 CLB 开启外网服务必须配置安全组规则。 以下为您介绍通过 CLB 开启外网服务,并通过 MySQL workbench…

    2025年7月25日
    1.1K00
  • mysql数据库无法启动-进行数据备份搬迁的教程

    今天看到一个案例:数据库服务无法启动,也导致了不能备份数据库、所以只能使用了笨方法、直接打包DATA目录 我们的服务器是宝塔环境、  直接备份 /www/server/data 这个目录备份 下载下来  在新的服务器上安装好环境、把data压缩包上传上去、进行解压覆盖、注意的是 版本最好一样。 重启一下数据库、 [root@VM_166_22_centos …

    2019年4月27日
    5.6K00
  • 腾讯云云数据库智能参数优化设置

    背景 “深度学习”这个词已经进入了公众的视线。时至今日,相关技术也比较成熟,腾讯云数据库团队也在思考如何借助深度学习的方式来提升数据库的运行效率。首先想到的就是数据库的参数调优。由于业务系统的千差万别,也无法像优化 SQL 一样在细粒度下进行针对性的调优,是令数据库管理者头痛的难题,往往需要借助经验去构筑一套相对较为优异的参数模板。数据库参数调优能力也是专家…

    2025年8月8日
    96200

发表回复

登录后才能评论
联系我们

联系我们

18838889666

在线咨询: QQ交谈

邮件:xinyun@88.com

工作时间:周一至周五,9:30-18:30,节假日休息

添加微信
添加微信
分享本页
返回顶部