伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 互联网资讯 » 文章详细 订阅RssFeed

【029期】口试官:内容量很大的环境下,对于分页查询你有什么优化方案吗?

来源:本站原创 浏览:125次 时间:2021-08-06

元宵节的由来与传说,昆明世纪城二手房,茶多酚的成果与作用

  >>号外:存眷“Java精选”公众号,复原“口试资料”,免费领取资料!“Java精选口试题”小法式,3000+ 道口试题在线刷,最新、最全 Java 口试题!

  当必要从内容库查询的表有上万笔记录的时候,一次性查询所有效果会变得很慢,稀奇是跟着内容量的增加稀奇明显,这时必要使用分页查询。对于内容库分页查询,也有很多种方法和优化的点。下面简洁说一下我知道的一些方法。

  准备工作

  为了对下面列举的一些优化进行测试,下面针对已有的一张表进行阐明。

  表名:order_history

  描述:某个买卖的订单汗青表

  主要字段:unsigned int id,tinyint(4) int type

  字段环境:该表一共37个字段,不包括text等大型内容,最大为varchar(500),id字段为索引,且为递增。

  内容量:5709294

  MySQL版本:5.7.16

  线下找一张百万级的测试表可不容易,如果必要本身测试的话,能够写shell剧本什么的插入内容进行测试。

  以下的 sql 所有语句执行的情况没有产生改变,下面是根基测试效果:

  select count(*) from orders_history;

  返回效果:5709294

  三次查询时间分别为:

  8903 ms

  8323 ms

  8401 ms

  一般分页查询

  一般的分页查询使用简洁的 limit 子句就能够实现。limit 子句声明如下:

  SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset

  LIMIT 子句能够被用于指定 SELECT 语句返回的记录数。需注意以下几点:

  第一个参数指定第一个返回记录行的偏移量,注意从0起头

  第二个参数指定返回记录行的最大数目

  如果只给定一个参数:它透露返回最大的记录行数目

  第二个参数为 -1 透露检索从某一个偏移量到记录集的竣事所有的记录行

  初始记录行的偏移量是 0(而不是 1)

  下面是一个应用实例:

  select * from orders_history where type=8 limit 1000,10;

  该条语句将会从表 orders_history 中查询offset: 1000起头之后的10条内容,也便是第1001条到第1010条内容(1001 <= id <= 1010)。

  内容表中的记录默认使用主键(一般为id)排序,上面的效果相当于:

  select * from orders_history where type=8 order by id limit 10000,10;

  三次查询时间分别为:

  3040 ms

  3063 ms

  3018 ms

  针对这种查询方式,下面测试查询记录量对时间的影响:

  select * from orders_history where type=8 limit 10000,1;select * from orders_history where type=8 limit 10000,10;select * from orders_history where type=8 limit 10000,100;select * from orders_history where type=8 limit 10000,1000;select * from orders_history where type=8 limit 10000,10000;

  三次查询时间如下:

  查询1笔记录:3072ms 3092ms 3002ms

  查询10笔记录:3081ms 3077ms 3032ms

  查询100笔记录:3118ms 3200ms 3128ms

  查询1000笔记录:3412ms 3468ms 3394ms

  查询10000笔记录:3749ms 3802ms 3696ms

  另外我还做了十来次查询,从查询时间来看,根基能够确定,在查询记录量低于100时,查询时间根基没有差距,跟着查询记录量越来越大,所破费的时间也会越来越多。

  针对查询偏移量的测试:

  select * from orders_history where type=8 limit 100,100;select * from orders_history where type=8 limit 1000,100;select * from orders_history where type=8 limit 10000,100;select * from orders_history where type=8 limit 100000,100;select * from orders_history where type=8 limit 1000000,100;

本文地址:http://www.wbwb.net/bianchengyuyan/218217.html 转载请注明出处!

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net