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 条件查询分页_百万数据下mysql条件查询及分页查询的注意事项相关推荐
- mysql 分页_百万数据下mysql分页问题
点击蓝字关注我们!每天获取最新的编程小知识! 源 / php中文网 源 / www.php.cn 百万数据下mysql分页问题 (查看原文请点击本文末尾左下角: 在开发过程中我们经常会使用分 ...
- mysql崩溃恢复过程_一起看下MySQL的崩溃恢复到底是怎么回事
思考一个问题 为什么在你当update时,事物提交之前先不断的写redo log呢? 如果你看过白日梦前面介绍buffer pool的文章,这个问题的答案想必你也能很快的想出来:MySQL为了提高性能 ...
- mac下mysql不支持中文_解决mac下mysql无法使用中文的问题
MySQL.png 针对 mac 系统下 mysql 无法使用中文,在网上查找解决办法,大部分都是将 mysql 下的 default.cnf 复制到 /etc下并修改为 my.cnf 然后对文件进行 ...
- mysql连接字符串 端口_浅析C#下MySQL连接字符串数据库服务器端口号
正常的C#下MySQL连接字符串配置,这是在MSSQL服务器端口是1433(默认)的情况下. 但是有时候,为了数据库服务器安全,这个端口会被改成其它的,这时再用这C#下MySQL连接字符串,连接数据库 ...
- mysql star item 失败_解决CentOS7下MySQL服务启动失败的问题.md
--- title: 解决CentOs7下MySQL服务启动失败的问题 date: 2021-01-06 15:21:31 tags: MySQL --- 老夫前几天才在虚拟机的CentOS安装好My ...
- mysql去掉秒杀场景_秒杀场景下mysql减库存逻辑优化
[问题背景] 某天早上做活动,流量大量增长,导致大量更新库存操作失败. 操作mysql返回的错误均为"Lost Connection to mysql server",即mysql ...
- spring mysql中文乱码问题_解决Spring下MySQL出现乱码的问题
花了我宝贵的3个小时才搞定,失败! 以前都是用Postgres,基本没有用过Mysql .怎么Postgres的时候从来没有这么麻烦啊,惆怅~~ 本来我的代码都是基于UTF-8的,用本机的Window ...
- Mysql使用存储过程快速添加百万数据
这篇文章主要介绍了Mysql使用存储过程快速添加百万数据,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 前言 为了体现不加索引和添加索引的区别, ...
- mac mysql密码错误_解决mac 下mysql安装后root用户登录密码错误问题
使用的mac OS 10.11 安装mysql后访问root/root用户失败,网上找了一些解决办法,下面记录下解决方法方便以后自己查询 概述(看懂下面就不用看了): 停服务:sudo /usr/l ...
最新文章
- maven 编译mybatis项目时xml文件无法编译到target目录下的解决方法
- 接口api全局挂载_第 6 篇:分页接口
- docker中创建MySQL及在外部使用Navicat连接
- java删除字符串最后一位
- 博客主题源码Yusi版本1.0,简洁明了的WordPress
- 张航、李沐等人提出ResNet最强改进版:性能提高3%,参数不增
- linux bootstrap强制结束,Cisco UCCX bootstrap服务目录遍历漏洞
- SQL 2008镜像配置
- 苹果App Store商店中国区如何改为美国区
- 深度神经网络——中文语音识别
- vue调用手机浏览器打开pdf_在微信中调用外部浏览器实现文件下载之解决
- 小米路由r2d论坛_小米路由器R2D拆机换3T紫盘
- 微信PC端电脑端多开 CMD打开多个微信
- 制作一个chrome插件
- 重邮2020年硕士研究生入学考试(《数据结构》802)自己做的部分答案
- XShell常用命令大全
- 【微信小程序常识】如何发布微信小程序体验版
- WM_KILLFOCUS和WM_SETFOCUS
- 王者荣耀微信一区的服务器没了,王者荣耀微信区不出现保存回放 | 手游网游页游攻略大全...
- 备注: ubt 16.04 安装 gtx 1060 --- 成功运行 tensorflow - gpu
热门文章
- ECMAScript 6 学习资料
- hihocoder 1032 最长回文子串(Manacher)
- CentOS 6.5自动化运维之基于DHCP和TFTP服务的PXE自动化安装centos操作系统详解
- GY的实验室 - Phalcon+Nginx+PHP-FPM环境搭建
- 利用联合双边滤波或引导滤波进行升采样(Upsampling)技术提高一些耗时算法的速度。...
- 判斷作業系統為 64bit 或 32bit z
- golang 学习记录
- hdu1598(并查集)
- LINUX的简单命令
- java.lang.ClassCastException(java强制类型转换异常)