Mysql中一千万条数据怎么快速查询

 更新时间:2021年12月06日 09:57:56   作者:java冢狐  
很多人在使用Mysql时没有考虑到优化问题,如果遇到上千万数据量的表,查询上千万数据量的时候会发生什么问题,本文就来介绍一下如何快速查询一千万条数据,感兴趣的可以了解一下

普通分页查询

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

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 快速查询内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL 常见数据拆分办法

    MySQL 常见数据拆分办法

    在生产环境中,由于业务的增长或者业务的拆分,DBA经常需要拆库操作。那么我们常见的拆库手段有哪些呢
    2016-07-07
  • 解决Mysql建表时报错invalid ON UPDATE clause for 'create_date' column

    解决Mysql建表时报错invalid ON UPDATE clause for 'create_d

    这篇文章主要介绍了解决Mysql建表时报错invalid ON UPDATE clause for 'create_date' column问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • mysql limit分页优化详细介绍

    mysql limit分页优化详细介绍

    MySQL最常用也最需要优化的就是limit,MySQL的limit给分页带来了极大的方便,但数据量一大的时候,limit的性能就急剧下降,需要的朋友可以参考下
    2016-12-12
  • mysql中格式化数字详解

    mysql中格式化数字详解

    格式化在我们日常开发中必不可少,最近在遇到了关于mysql格式化数字的需求,所以下面这篇文章主要给大家介绍了关于mysql中格式化数字的相关资料,分别介绍了format函数和rpad 和 lpad 给定位数,不足补充自定义字符,需要的朋友可以参考下。
    2017-07-07
  • MySQL9.0的两种部署模式及各个版本发布的新功能

    MySQL9.0的两种部署模式及各个版本发布的新功能

    本文主要介绍了MySQL9.0的两种部署模式及各个版本发布的新功能,文中通过图文示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • MySQL中Truncate用法详解

    MySQL中Truncate用法详解

    Truncate是一个能够快速清空资料表内所有资料的SQL语法。这篇文章介绍了Truncate用法及注意事项,并和drop,delete方法进行对比。需要的朋友可以收藏下,方便下次浏览观看
    2021-12-12
  • 一步步教你利用Mysql存储过程造百万级数据

    一步步教你利用Mysql存储过程造百万级数据

    因工作需要维护一张中建表数据内置,所以得造数据所以使用存储过程来造数据,下面这篇文章主要给大家介绍了关于如何一步步利用Mysql存储过程造百万级数据的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-03-03
  • 与MSSQL对比学习MYSQL的心得(一)--基本语法

    与MSSQL对比学习MYSQL的心得(一)--基本语法

    最开始接触的数据库为MSSQL,不过最近项目需求,仔细学习了下MYSQL,下面就对比MSSQL,把MYSQL的学习心得分享给大家
    2014-06-06
  • Mysql中被锁住的表查询以及如何解锁详解

    Mysql中被锁住的表查询以及如何解锁详解

    这篇文章主要介绍了Mysql中被锁住的表查询以及如何解锁的相关资料,这些方法可以帮助你释放锁并恢复表的正常使用,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-03-03
  • MySQL三表联合查询操作举例

    MySQL三表联合查询操作举例

    在mysql查询语句中,为了实现查询到某些信息,我们会用到多表的联合查询,下面这篇文章主要给大家介绍了关于MySQL三表联合查询操作的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-03-03

最新评论