MySQL查询优化

逃离我推掉我的手 2021-12-19 00:04 445阅读 0赞

文章目录

    • 分页查询优化
      • 一般分页查询
      • 优化

分页查询优化

测试表如下:

  1. SELECT COUNT(*) FROM `g_beta_account_record`;

在这里插入图片描述
可以看到这张表有200多W条数据。

一般分页查询

一般分页查询都是使用limit

分别执行下面3条sql:

1、执行时间:0.008 sec
在这里插入图片描述

  1. SELECT * FROM `g_beta_account_record` AS ar LIMIT 0, 100;

2、执行时间:0.501 sec
在这里插入图片描述

  1. SELECT * FROM `g_beta_account_record` AS ar LIMIT 1000000, 100;

3、执行时间:1.003 sec
在这里插入图片描述

  1. SELECT * FROM `g_beta_account_record` AS ar LIMIT 2000000, 100;

得出结论:

从查询时间来看,基本可以确定,在查询记录量低于100时,查询时间基本没有差距,随着查询记录量越来越大,所花费的时间也会越来越多。
这种分页查询方式会从数据库第一条记录开始扫描,所以越往后,查询速度越慢,而且查询的数据越多,也会拖慢总查询速度。

优化

这种方式先定位偏移位置的 id,然后往后查询。

执行时间:0.513 sec
在这里插入图片描述

  1. SELECT
  2. *
  3. FROM
  4. `g_beta_account_record` AS ar,
  5. (SELECT
  6. id
  7. FROM
  8. `g_beta_account_record`
  9. LIMIT 2000000, 100) AS atable
  10. WHERE ar.id = atable.id;

相比上面第3条SQL时间快了大约1倍。

更详细的优化:

  • https://www.cnblogs.com/youyoui/p/7851007.html
  • https://www.cnblogs.com/scotth/p/7995856.html

发表评论

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

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

相关阅读

    相关 mysql查询优化

    目录 一.用explain去分析sql 二.单表查询优化 1.无索引 技巧一:避免select \ 查询全部列 技巧二:sql的全盘扫描是从第一行数据一直扫描到最后

    相关 MySQL 查询优化

    使用索引 规则 1. 全值匹配:查询的字段按照顺序在索引中都可以匹配到, 2. 最佳左前缀法则:指的过滤条件要使用索引必须按照索引建立时的顺序依次满足 , 一旦

    相关 Mysql查询优化

    mysql实现根据多个字段查找和置顶功能 mysql根据多个字段查找在mysql中,如果要实现根据某个字段排序的时候,可以使用下面的SQL语句'TABLE\_NAME'然

    相关 mysql 查询优化

    MySQL 的查询语句的优化有两种办法: 第一种使用explain;第二种使用show profile 一:explain的使用 ![在这里插入图片描述][wate

    相关 mySQL查询优化

    糟糕的SQL查询语句可对整个应用程序的运行产生严重的影响,其不仅消耗掉更多的数据库时间,且它将对其他应用组件产生影响。   如同其它学科,优化查询性能很大程度上决定于开发者的

    相关 mysql查询优化

    数据库查询优化 > Innodb存储引擎支持以下几种常见的索引: B+树索引 全文索引 哈希索引 Innodb存储引擎支持的哈希索引是自适应的,In

    相关 MySQL查询优化

    为什么查询会慢? 查询慢的原因可能很多,比如网络原因、锁争用等等。但最基本的原因可能是访问的数据太多。要么可能访问了太多的行,要么可能访问了太多的列,要么可能MySQL在