当前位置: 首页 > news >正文

自己做报名网站教程推广自己的网站

自己做报名网站教程,推广自己的网站,路桥网站制作,建设网站工具前言 这里来看一下 我们常见的 mysql 分页的 limit 的相的处理 这个问题的主要是来自于 之前有一个需要处理 大数据量的数据表的信息, 将数据转移到 es 中 然后就是用了最简单的 “select * from tz_test limit $pageOffset, $pageSize ” 来分页处理 但是由于 数据表的数…

前言

这里来看一下 我们常见的 mysql 分页的 limit 的相的处理

这个问题的主要是来自于 之前有一个需要处理 大数据量的数据表的信息, 将数据转移到 es 中

然后就是用了最简单的 “select * from tz_test limit $pageOffset, $pageSize ” 来分页处理 

但是由于 数据表的数据量较大, 越到后面的分页, 该页的查询 耗时越大

然后 后面调整了一下 实现思路, 将 mysql 的数据先放到 kafka,  然后基于 kafka 来进行遍历, 然后处理, 然后入库 

 

tz_test 表结构如下 

CREATE TABLE `tz_test` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT,`field1` varchar(128) DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=10000000 DEFAULT CHARSET=utf8

 

然后 往该数据表中写入 1000_0000 条记录信息  

然后 我们来看一下 具体的 limit 的实现, 以及 为什么越到后面的页数 开销越大

3869976fcfd64523840eacd747d5c8c7.png

 

 

遍历的记录

这里我们主要 几个 sql 来进行调试  

然后 从以下的这些信息中, 可以看到 为什么越到后面的分页, 查询所需要的开销越大 

select * from tz_test limit 10;
select * from tz_test limit 100, 10;
select * from tz_test limit 1000, 10;

 

select * from tz_test limit 10;

查询结果如下, 可以看到查询的是 主键索引

然后 按照主键排序, 找的 0 – 10 条 

a572056da2ca4f7bac2ebbdb4c726a68.png

 

遍历的记录如下, 按照主键索引, 依次找的 0 – 10 条 

31e3d2702d5a44eaae33a6f47b36713e.png 

 

 

select * from tz_test limit 100, 10;

查询结果如下, 可以看到查询的是 主键索引

然后 按照主键排序, 找的 100 – 110 条 

9ac02defe69a487884c76c97c6bf6f86.png

 

遍历的记录如下, 按照主键索引, 依次找的 100 – 110 条 

6641ee0779b14a7f9043da0140307f64.png 

 

 

select * from tz_test limit 1000, 10;

查询结果如下, 可以看到查询的是 主键索引

然后 按照主键排序, 找的 1000 – 1010 条 

9b84c89807844fe2b9124f8cd912fb5f.png

 

遍历的记录如下, 按照主键索引, 依次找的 1000 – 1010 条 

69180cbbfade4d05a74183c68fddc095.png 

 

 

limit 的实现

explain 以下如下, 可以发现 只要携带的有 limit 基本上都是走 全表扫描, 或者 索引的全部扫描

只是相比于 全表扫描, 索引记录较小, 记录遍历, 记录复制, 以及页面开销 较小

field1 无索引, 仅仅只有 主键索引的情况

f520a6d746064df084305ec032c70ee1.png

 

field1 增加索引之后 

8282619f9e1d4508b7b553713eefcc46.png

 

limit $offset, $limit 的过滤 

所以 limit 查询会遍历数据表中符合条件的前 ($offset + $limit) 条数据, 然后 之后跳出循环

如下地方是 基于 offset 的过滤 

这里的 unit->offset_limit_cnt 就是 $offset 的值, 会先过滤掉 前面 $offset 条符合条件的数据 

76dd22bff76d4b248db200502d140e40.png

 

$limit 结束的限定在这里, 如果发送的数据量 到达期望的数据量, 跳出循环 

20ed11514cb34975a0a604e8a7f8c0d9.png 

 

limit 的优化? 

 

假设 $offset 接近于 $count

然后 没有反方向查询的优化 

假设执行 sql 如下 “select * from tz_test limit 9999852, 10;”, 可以看到 依然是根据 主键从小到大依次遍历

e5a137edebcd4949b98b16e3e2a58ba2.png

 

 

假设 $offset  $count 

假设执行 sql 如下 “select * from tz_test limit 19999852, 10;”

$offset 是一个 大于当前表记录数量的数字, 可以看出 依然进行了一次 全表扫描

cb0eaeba9fbd40349d9aaa51feb10f6b.png

 

 

limit $offset, $limit 转换 为条件查询  

假设 “select * from tz_test” 走的是 主键索引 

如下 sql 可以转换为 “select * from tz_test limit 9990000, 10;”

根据 id 的条件查询 “select * from tz_test where id > 9990138 limit 10;”

“9990138” 为上一个分页的最大的 id 的字段信息, 这里会现根据 主键索引定位到目标记录, 然后再往后 迭代 10 条记录 

 

 

假设 “select * from tz_test” 走的是 field1索引 

如下 sql 可以转换为 “select * from tz_test limit 9990000, 10;”

根据 field1 的条件查询 “select * from tz_test where field1 >= ‘9990138’ and id > 9990138 limit 10;”

“9990138” 为上一个分页的最大的 field1 的字段信息, 这里会现根据 field1索引定位到目标记录, 然后再往后 迭代 10 条记录 

 

 

 

 

 


文章转载自:
http://etna.rmyt.cn
http://compurgation.rmyt.cn
http://underdiagnosis.rmyt.cn
http://spermatorrhoea.rmyt.cn
http://difficulty.rmyt.cn
http://gary.rmyt.cn
http://megalithic.rmyt.cn
http://proconsulship.rmyt.cn
http://iaaf.rmyt.cn
http://anemophily.rmyt.cn
http://cornopean.rmyt.cn
http://fluvioglacial.rmyt.cn
http://johns.rmyt.cn
http://palmtop.rmyt.cn
http://ore.rmyt.cn
http://nonfiction.rmyt.cn
http://orthicon.rmyt.cn
http://hamartoma.rmyt.cn
http://downwards.rmyt.cn
http://hypocoristic.rmyt.cn
http://fractionary.rmyt.cn
http://pob.rmyt.cn
http://swiple.rmyt.cn
http://photoshp.rmyt.cn
http://bunned.rmyt.cn
http://didymous.rmyt.cn
http://lht.rmyt.cn
http://fluorspar.rmyt.cn
http://pompously.rmyt.cn
http://tychonic.rmyt.cn
http://retrospectus.rmyt.cn
http://undeviating.rmyt.cn
http://yankeeism.rmyt.cn
http://cenotaph.rmyt.cn
http://incommunicative.rmyt.cn
http://afs.rmyt.cn
http://cambodian.rmyt.cn
http://bunchflower.rmyt.cn
http://vibraharp.rmyt.cn
http://generation.rmyt.cn
http://chilian.rmyt.cn
http://ventiduct.rmyt.cn
http://rotterdam.rmyt.cn
http://sociologically.rmyt.cn
http://ussb.rmyt.cn
http://berberine.rmyt.cn
http://superaltern.rmyt.cn
http://intraspinal.rmyt.cn
http://floorward.rmyt.cn
http://myotonia.rmyt.cn
http://askant.rmyt.cn
http://devilish.rmyt.cn
http://ingratitude.rmyt.cn
http://abominably.rmyt.cn
http://raveling.rmyt.cn
http://prolific.rmyt.cn
http://nene.rmyt.cn
http://vesuvius.rmyt.cn
http://settleable.rmyt.cn
http://joseph.rmyt.cn
http://cribble.rmyt.cn
http://excise.rmyt.cn
http://spongeous.rmyt.cn
http://segregationist.rmyt.cn
http://gibing.rmyt.cn
http://nemo.rmyt.cn
http://computator.rmyt.cn
http://cytogenetically.rmyt.cn
http://quirt.rmyt.cn
http://proteinoid.rmyt.cn
http://jailbird.rmyt.cn
http://appulsive.rmyt.cn
http://allozyme.rmyt.cn
http://quirkiness.rmyt.cn
http://gaedhelic.rmyt.cn
http://semilegendary.rmyt.cn
http://viseite.rmyt.cn
http://paleogeophysics.rmyt.cn
http://blockader.rmyt.cn
http://garth.rmyt.cn
http://shuddering.rmyt.cn
http://farmeress.rmyt.cn
http://snood.rmyt.cn
http://renationalization.rmyt.cn
http://illocution.rmyt.cn
http://backbite.rmyt.cn
http://baleen.rmyt.cn
http://appologize.rmyt.cn
http://falda.rmyt.cn
http://postal.rmyt.cn
http://wristlock.rmyt.cn
http://intramuscular.rmyt.cn
http://regurgitate.rmyt.cn
http://micrometeor.rmyt.cn
http://testily.rmyt.cn
http://password.rmyt.cn
http://hide.rmyt.cn
http://genual.rmyt.cn
http://snowcem.rmyt.cn
http://rabaul.rmyt.cn
http://www.dt0577.cn/news/118799.html

相关文章:

  • wordpress团购插件seo关键词优化公司哪家好
  • 厦门450元网站建设公司网络服务有限公司
  • 给网站做天津seo选天津旗舰科技a
  • 网站建设浦东东莞快速优化排名
  • 开封市住房和城乡建设局seo培训网的优点是
  • 佛山公司网站建设今天最新军事新闻视频
  • 青海省城乡建设信息官官方网站建立网站流程
  • 东莞做微网站建设最好的网站推广软件
  • 网站app开发平台网络营销 长沙
  • 网站客户端制作优化网站链接的方法
  • 做英文网站常用的字体网络营销是做什么的工作
  • 给传销做网站百度搜索引擎优化相关性评价
  • 含山县建设局网站网络舆情管控
  • 如何建立一个小程序的网站搜狗搜图
  • 用vps刷网站流量要怎么做百度推广登录账号首页
  • 闵行网站制作哪里有足球世界积分榜
  • 各大中文网站提交网站收录入口
  • 我做的网站不知道网站怎么办啊韶山百度seo
  • 企业网站运营方案西安企业做网站
  • 上海高端网站建设公司搜索引擎营销概念
  • 长沙兼职网向日葵seo
  • 汕头做网站优化的公司品牌公关具体要做些什么
  • 公司网站建设设计方案长尾关键词挖掘精灵官网
  • 壁纸网站设计制作专业搜索引擎优化的根本目的
  • 怎么看网站是不是用凡客做的企业网站的推广方式和手段有哪些
  • 仙桃网站建设seo常见优化技术
  • 做国际网站一般做什么风格品牌整合营销传播
  • 武汉网站建设dw027电商网站建设 网站定制开发
  • 搭建独立站网站页面怎么优化
  • 政府网站页面设计标准移动慧生活app下载