文章来源: 学习通http://www.bdgxy.com/

目录
  • 普通分页查询
  • 如何优化
    • 偏移量大
    • 采用id限定方式
    • 优化数据量大问题

普通分页查询

当我们在日常工作中遇到大数据查询的时候,第一反应就是使用分页查询。

mysql支持limit语句来选取指定的条数数据,而oracle可以使用rownum来选取

mysql分页查询语句如下:

SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset
  • 第一个参数用来指定第一个返回记录行的偏移量
  • 第二个参数指定返回记录行的最大数目
    • 当相同的偏移量时,数据量越大,花费时间越长
    • 当相同的数据量时,偏移量越大,花费时间越长

如何优化

经过上面的总结,我们可以很清晰的看到当偏移量大,数据量大的时候,查询的时间还是挺多的,所以我们就针对这两种来着手优化

偏移量大

采用子查询方式

我们可以先定位偏移位置的id,然后再查询数据

select * from test limit 1000000,10
select id from test limit 1000000,1
select * from test where id>=(select id from test limit 1000000,1)limit 10

?通过执行我们可以发现,第一条花费时间最大,第三条比第一条稍微好一点,而且子查询使用索引速度更快。

但是只是适用于id递增的情况

采用id限定方式

这种方法要求更高,id必须是连续递增,而且还得计算id的范围,然后使用between,sql如下:

select * from test where id between 1000000 and 1000100 limit 100;
select * from test where id>=1000000 limit 100

结果很快

这里limit是限制了条数,没有采用偏移量

优化数据量大问题

  • 返回结果的数据量也会直接影响速度
  • 减少不需要的列,查询效率会明显提升

到此这篇关于Mysql中一千万条数据怎么快速查询的文章就介绍到这了,更多相关Mysql 快速查询内容请搜索菜鸟教程www.piaodoo.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持菜鸟教程www.piaodoo.com!

Mysql中一千万条数据怎么快速查询相关推荐

  1. python+mysql:实现一千万条数据插入数据库

    实现思路如下: 复制原数据库moviedb至newmoviedb 设置max_allowed_packet,以保证一条insert语句可以插入足够多的元组 用python生成一条一次插入10000个元 ...

  2. 如何查mysql里有多少条数据_mysql快速查询数据库中有多少条数据

    慕尼黑的夜晚无繁华 mysql 统计 表的数量:SELECT COUNT(1) FROM information_schema.TABLES WHERE TABLE_SCHEMA = '你的数据库'; ...

  3. mysql数据库删除千万条数据的操作方案

    项目情况是这样的,数据库中有一张计费表,这张表是随着时间无限增长的,数据会越来越多,count一下数据共有8千万条,而现在需要删除2019年之前所有的数据,大概7千多万条.表中有索引. 我直接使用 D ...

  4. mysql如何更新两条数据_mysql根据查询结果批量更新多条数据(插入或更新)

    mysql根据查询结果批量更新多条数据(插入或更新) 1.1 前言 mysql根据查询结果执行批量更新或插入时经常会遇到1093的错误问题.基本上批量插入或新增都会涉及到子查询,mysql是建议不要对 ...

  5. MS sql server和mysql中update多条数据的例子

    1. MS sql server中使用动态的表名:declare @tableName nvarchar(160) set @tableName = 't_stat_all' declare @sql ...

  6. Mysql数据库导入千万条数据

    第一步 创建数据库 sql语句: CREATE DATABASE aaaa 第二步 创建表 sql语句: CREATE TABLE usertb( id serial, uname varchar(2 ...

  7. 一千万条数据,怎么快速查询

    一千万条数据怎么快速查询 普通分页查询 ​ 当我们在日常工作中遇到大数据查询的时候,第一反应就是使用分页查询. mysql支持limit语句来选取指定的条数数据,而oracle可以使用rownum来选 ...

  8. Java千万数据导入mysql_java之5分钟插入千万条数据

    虽说不一定5分钟就插入完毕,因为取决去所插入的字段,如果字段过多会稍微慢点,但不至于太慢.10分钟内基本能看到结果. 之前我尝试用多线程来实现数据插入(百万条数据),半个多小时才二十多万条数据. 线程 ...

  9. 插入2万调数据耗时_教你如何6秒钟往MySQL插入100万条数据!然后删库跑路!

    一.思路 往MySQL中插入1000000条数据只花了6秒钟! 关键点: 1.使用PreparedStatement对象 2.rewriteBatchedStatements=true 开启批量插入, ...

最新文章

  1. signature=ecbb5c28a0561484700bbfeebe84cc52,Corps next in line as bond fees are hit by ECB
  2. 【jQuery源码】select方法
  3. Web安全之代码执行漏洞
  4. jQuery全选反选实例
  5. 如何使用jstack分析线程状态
  6. 为项目选择合适的语言
  7. 剑指 Offer 13. 机器人的运动范围 【重刷】
  8. tomcat使用自签名证书实现https加密访问
  9. Python IDE: 10个最好用的python集成开发环境(IDE)
  10. Sql Server 时间格式
  11. 北大青鸟汉字注释机内码_北大青鸟消防主机如何编写汉字注释?
  12. 计算机系统英语作文结尾万能句子,简单英语作文万能句子 开头结尾套用句子...
  13. free、detele与野指针
  14. 多轮对话之对话管理(Dialog Management)
  15. 通过ajax单独上传图片
  16. 为知一而学十,人生而孤独
  17. 概率论复习大纲 | 速成
  18. VMware下怎么批量创建,克隆,迁移虚拟机
  19. 艾美捷测序级 II,纯化胰蛋白酶化验程序文献参考
  20. 阿里云服务器不能发邮件的解决方法

热门文章

  1. Java项目运维与监控调优
  2. java.打印菱形_利用java程序打印空菱形
  3. 制作自己的ctpn数据集
  4. 响应式网页教程_如何响应式思考:响应式网页设计教程
  5. 【编译原理】语义分析
  6. HTML基础之常用标签第二篇:有序无序标签,以及框架标签
  7. GeForce MX150相对应的NVIDIA CUDA版本_性能放心了:NVIDIA公版RTX 30系显卡设计频率可达2.2GHz...
  8. 关于字体和字体微调(Hinting )的知识
  9. 修改文件与文件提交--乐字节Java
  10. springdata jpa jpql 条件查询