MySQL--大数据量的分页优化方案

Dear 丶 2023-09-29 16:48 175阅读 0赞

原文网址:MySQL—大数据量的分页优化方案_IT利刃出鞘的博客-CSDN博客

简介

本文介绍如何优化MySQL的大表的分页查询。

问题描述

在分页查询时,分页页数越大,查询速度越慢。

比如:测试起始页不断增加查看SQL的执行时间:

  1. mysql> SELECT * FROM `t_user` LIMIT 10000,10 ;
  2. mysql> SELECT * FROM `t_user` LIMIT 100000,10 ;
  3. mysql> SELECT * FROM `t_user` LIMIT 1000000,10 ;
  4. mysql> SELECT * FROM `t_user` LIMIT 5000000,10 ;

结果:

  1. mysql> SHOW PROFILES;
  2. +----------+-------------+-------------------------------------+
  3. | Query_ID | Duration | Query |
  4. +----------+-------------+-------------------------------------+
  5. | 1 | 0.00861825 | SELECT * FROM `t_user` LIMIT 10000,10 |
  6. | 2 | 0.68741175 | SELECT * FROM `t_user` LIMIT 100000,10 |
  7. | 3 | 5.62566875 | SELECT * FROM `t_user` LIMIT 1000000,10 |
  8. | 4 | 18.33333200 | SELECT * FROM `t_user` LIMIT 5000000,10 |
  9. +----------+-------------+-------------------------------------+

可以看到,随着起始位置的增加,查询时间也不断增加。

原因分析

查询流程概述

假设查询第1000000页数据,每页10条,则分页查询的语句是:

  1. SELECT * FROM `t_user` WHERE `name` = 'Tony' LIMIT 1000000,10

本次测试,上述SQL的执行结果为:57.463s。

MySQL对上述的SQL的处理流程为:先排序,然后取出1000010条数据,然后舍去前100000条数据,返回10条数据。

上边只是部分内容,为便于维护,本文已迁移到此地址:MySQL-大数据量的分页优化方案 - 自学精灵

发表评论

表情:
评论列表 (有 0 条评论,175人围观)

还没有评论,来说两句吧...

相关阅读