接上一节《百万数据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 条件查询分页_百万数据下mysql条件查询及分页查询的注意事项相关推荐

  1. mysql 分页_百万数据下mysql分页问题

    点击蓝字关注我们!每天获取最新的编程小知识! 源 / php中文网      源 / www.php.cn 百万数据下mysql分页问题 (查看原文请点击本文末尾左下角: 在开发过程中我们经常会使用分 ...

  2. mysql崩溃恢复过程_一起看下MySQL的崩溃恢复到底是怎么回事

    思考一个问题 为什么在你当update时,事物提交之前先不断的写redo log呢? 如果你看过白日梦前面介绍buffer pool的文章,这个问题的答案想必你也能很快的想出来:MySQL为了提高性能 ...

  3. mac下mysql不支持中文_解决mac下mysql无法使用中文的问题

    MySQL.png 针对 mac 系统下 mysql 无法使用中文,在网上查找解决办法,大部分都是将 mysql 下的 default.cnf 复制到 /etc下并修改为 my.cnf 然后对文件进行 ...

  4. mysql连接字符串 端口_浅析C#下MySQL连接字符串数据库服务器端口号

    正常的C#下MySQL连接字符串配置,这是在MSSQL服务器端口是1433(默认)的情况下. 但是有时候,为了数据库服务器安全,这个端口会被改成其它的,这时再用这C#下MySQL连接字符串,连接数据库 ...

  5. mysql star item 失败_解决CentOS7下MySQL服务启动失败的问题.md

    --- title: 解决CentOs7下MySQL服务启动失败的问题 date: 2021-01-06 15:21:31 tags: MySQL --- 老夫前几天才在虚拟机的CentOS安装好My ...

  6. mysql去掉秒杀场景_秒杀场景下mysql减库存逻辑优化

    [问题背景] 某天早上做活动,流量大量增长,导致大量更新库存操作失败. 操作mysql返回的错误均为"Lost Connection to mysql server",即mysql ...

  7. spring mysql中文乱码问题_解决Spring下MySQL出现乱码的问题

    花了我宝贵的3个小时才搞定,失败! 以前都是用Postgres,基本没有用过Mysql .怎么Postgres的时候从来没有这么麻烦啊,惆怅~~ 本来我的代码都是基于UTF-8的,用本机的Window ...

  8. Mysql使用存储过程快速添加百万数据

    这篇文章主要介绍了Mysql使用存储过程快速添加百万数据,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 前言 为了体现不加索引和添加索引的区别, ...

  9. mac mysql密码错误_解决mac 下mysql安装后root用户登录密码错误问题

    使用的mac OS 10.11  安装mysql后访问root/root用户失败,网上找了一些解决办法,下面记录下解决方法方便以后自己查询 概述(看懂下面就不用看了): 停服务:sudo /usr/l ...

最新文章

  1. maven 编译mybatis项目时xml文件无法编译到target目录下的解决方法
  2. 接口api全局挂载_第 6 篇:分页接口
  3. docker中创建MySQL及在外部使用Navicat连接
  4. java删除字符串最后一位
  5. 博客主题源码Yusi版本1.0,简洁明了的WordPress
  6. 张航、李沐等人提出ResNet最强改进版:性能提高3%,参数不增
  7. linux bootstrap强制结束,Cisco UCCX bootstrap服务目录遍历漏洞
  8. SQL 2008镜像配置
  9. 苹果App Store商店中国区如何改为美国区
  10. 深度神经网络——中文语音识别
  11. vue调用手机浏览器打开pdf_在微信中调用外部浏览器实现文件下载之解决
  12. 小米路由r2d论坛_小米路由器R2D拆机换3T紫盘
  13. 微信PC端电脑端多开 CMD打开多个微信
  14. 制作一个chrome插件
  15. 重邮2020年硕士研究生入学考试(《数据结构》802)自己做的部分答案
  16. XShell常用命令大全
  17. 【微信小程序常识】如何发布微信小程序体验版
  18. WM_KILLFOCUS和WM_SETFOCUS
  19. 王者荣耀微信一区的服务器没了,王者荣耀微信区不出现保存回放 | 手游网游页游攻略大全...
  20. 备注: ubt 16.04 安装 gtx 1060 --- 成功运行 tensorflow - gpu

热门文章

  1. ECMAScript 6 学习资料
  2. hihocoder 1032 最长回文子串(Manacher)
  3. CentOS 6.5自动化运维之基于DHCP和TFTP服务的PXE自动化安装centos操作系统详解
  4. GY的实验室 - Phalcon+Nginx+PHP-FPM环境搭建
  5. 利用联合双边滤波或引导滤波进行升采样(Upsampling)技术提高一些耗时算法的速度。...
  6. 判斷作業系統為 64bit 或 32bit z
  7. golang 学习记录
  8. hdu1598(并查集)
  9. LINUX的简单命令
  10. java.lang.ClassCastException(java强制类型转换异常)