文档章节

索引延迟关联

无敌小杰杰
 无敌小杰杰
发布于 2019/12/11 00:14
字数 477
阅读 15
收藏 0
  • 前言

今天在看代码的时候学习到了一种索引的优化,就先在此记录下来。

  • 具体

举个例子,原sql如下:

SELECT * FROM TABLE WHERE INDEX = ''  LIMIT 10000, 10;
  • 现象

就算INDEX用了查询索引,但是当分页深度越来越大的时候,查询的耗时会越来越大,效率会越来越低。

  • 原因

当用查询索引来进行查询的时候,他会遍历两次B+树。第一次遍历会很快,因为他会先去查主键id,然后第二次会进行回表根据第一次拿到的主键id去查询具体的数据。

那么换句话说就是当分页的深度越深,那么回表的条数则越多,那么回表的代价则越大。所以要想改变这个现状,我们要在回表处做点文章。

  • 解决

根据上述的原因我们可以根据延迟关联来进行优化,sql如下:

SELECT * FROM TABLE A , (SELECT id FROM TABLE WHERE INDEX = '' LIMIT 10000, 10) B WHERE A.id = B.id;

sql如此优化了之后,就不会出现回表了。第一次TABLE-B我们只拿了id,因此没出现回表,同时直接将id的数量缩小到了10个,接下去再用10个id去取数据。

当数据量很大,查询分页深度很深的时候,这样的优化就会效果十分显著!

  • 总结

需要学习的东西还有很多,要多思考,多发现平时工作中的细小点,然后进行思考,最后也会获益良多。

每天进步一点点!

© 著作权归作者所有

无敌小杰杰
粉丝 4
博文 30
码字总数 17677
作品 0
嘉兴
私信 提问
【limit优化】MySQL延迟关联性能优化方法

一.业务 假设业务某个场景中,需要查询多次查询数据,sql如下: startNum = i * 500;select id,content from testtable order by updatedate asc limit " + startNum + ",500"; limit n,m定义......

谢思华
2015/08/24
1K
0
hibernate之xml映射文件关系维护,懒加载,级联

一:关系维护   --->inverse默认值false,表示不放弃关系的维护。   --->inverse="true"配置在那一端,表示那一端xml对应的po放弃关系的维护(交由hibernate内部进行维护),由另一端进行...

无信不立
2014/08/25
0
0
hibernate 如何实现延迟加载

延迟加载: 延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。在Hibernate中提供了 对实体对象的延迟加载以及对集合...

bowl154
2010/12/17
149
2
Hibernate延迟加载机制

延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。在Hibernate中提供了对实体对象的延迟加载以及对集合的延迟加载,...

swuping
2011/03/14
153
0
什么是hibernate懒加载?什么时候用懒加载?为什么要用懒加载?

所谓懒加载(lazy)就是延时加载,延迟加载。 什么时候用懒加载呢,我只能回答要用懒加载的时候就用懒加载。 至于为什么要用懒加载呢,就是当我们要访问的数据量过大时,明显用缓存不太合适, ...

widely
2013/09/09
576
1

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 宇宙银河乱弹英雄传 —— @FalconChen

1Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @巴拉迪维 :Axxis的单曲《Only God Knows》 最近只听摇滚,挖了好多以前没听过的歌,蛮好。#今日歌曲推荐# 《Only God Knows》- Axxis 手机...

小小编辑
今天
229
2
Safari Date() 函数对日期时间字符串(yyyy-MM-dd HH:mm:ss) 提示NaN的问题

今天发现一个奇怪的问题,在iPhone使用 safari 选择定时发布文章到OSC,选择时间后提示不是合法的时间,判断时间的代码如下: var d = new Date('2020-01-23 23:15'); if (isNaN(d)) {...

FalconChen
昨天
124
0
ActiveMQ学习之通讯协议

一、支持的通讯协议 ActiveMQ支持的client-broker通讯协议有:TCP、NIO、UDP、SSL、HTTP(S)、VM 其中配置Transport Connector的文件在ActiveMQ安装目录的conf/activemq.xml中的<TransportCon...

冥焱
昨天
91
0
应急广播户户通平台

一、平台概述 应急广播户户通平台为软硬一体化广播服务解决方案。实现了应急广播、视音频及图片文字信息、调频及数字广播FM、天气预报信息接收功能,以及视音频播放、智能机器人、电子日历等...

neocean
昨天
133
0
如何为Apache 2.2启用mod_rewrite

我已经在我的Vista机器上安装了新的Apache 2.2,一切正常,除了mod重写。 我没有注释 LoadModule rewrite_module modules/mod_rewrite.s 但是我的重写规则都没有,即使是简单的重写规则 Re...

javail
昨天
53
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部