索引顺序扫描引发的heap scan IO放大, 背后的统计学原理与解决办法 (click.aliyun.com)

【简介】

标签 PostgreSQL , 优化器 , 索引扫描 , 堆扫描 , IO放大 背景 通过B-TREE索引扫描可能会带来了巨大的heap page scan数目,即IO的放大. 为什么呢? 示例视频如下 : http://www.tudou.com/programs/view/yQ0SzBqx_4w/ 如果数据库的单个数据块(block_size)很大的话, 这种情况带来的负面影响也将被放大. 例如32k的block_size显然比8k的block_size扫描开销更大. 本文将讲解一下索引扫描引发的heap page scan放大的原因, 以及解决办法。

点击查看原文 >>

@云栖精选 2017-05-09 14:13 / 0个评论
要不要再学学下面的文章?
Memcached的存储原理解析 (www.codedump.info)
最近工作上的需要,需要做一个LRU形式管理内存的分配器,首先想到的就是Memcached这个项目。早些年粗略的看过一些,有个大体的了解,这一次看下来发现其LRU算法做了不少的改动。
by @技术头条 2024-03-21 23:21 查看详情
B树、B+树索引算法原理(下) (www.codedump.info)
在上一篇文章中,介绍了数据库索引的简单概念,以及B树的结构及核心算法,这一篇将继续介绍B树的变形B+树。
by @技术头条 2024-03-21 23:02 查看详情
B树、B+树索引算法原理(上) (www.codedump.info)
这一段时间由于在阅读boltdb代码的缘故,找机会学习了B树及B+树的算法原理,这个系列会花两个篇幅分别介绍这两种数据结构的实现,其用于数据库索引中的基本原理。
by @技术头条 2024-03-21 23:01 查看详情
IM服务器设计-如何解决消息的乱序 (www.codedump.info)
IM消息需要面对的另一个难题:如何保证收到的消息不乱序。下面先展开看看要解决这个难题有哪些障碍。
by @技术头条 2024-03-21 23:00 查看详情
Redis高可用原理 (www.codedump.info)
Redis中为了实现高可用(High Availability,简称HA),采用了如下两个方式:
1、主从复制数据。
2、采用哨兵监控数据节点的运行情况,一旦主节点出现问题由从节点顶上继续进行服务。
by @技术头条 2024-03-13 13:29 查看详情
SQL优化(3)-索引与优化原理(上) (example.com)
这一篇我们回归现实中的MySQL数据库,初步学习具体的SQL优化原则,并尝试从索引底层原理出发,分析为什么会有那么多的“规则”。
by @技术头条 2024-01-13 23:28 查看详情
SQL优化(2)-索引与B+树 (example.com)
对于60%的程序员而言,Java的三层架构Controller、Service、Dao可以说是“越往后走天越黑”,特别是到了Dao层,提着灯笼也只能看到脚边一米开外的河边小石子,只闻对岸风啸马嘶却不知到底是人是鬼,只能借着MyBatis或JPA这些ORM框架隔着宽宽的河举行一场又一场的刺刀战,你砍我一刀,我刺你一剑。

诚然,很多人对MySQL数据库的印象就是一个模糊的大铁柜,闭上眼睛深吸一口气仿佛还能嗅到一股铁锈味。只知柜子里藏着很多张表,表里面存着很多行数据,再详细一点的呢?不知道。

MySQL有太多太多细节,根本无法用四、五篇文章说透,但我仍希望这个系列的文章能成为非常好的入门教程,让从来没接触过SQL优化的同学也能快速建立较为系统的知识框架,方便日后学习其他专栏时进一步拓展。
by @技术头条 2024-01-13 23:28 查看详情
校园网保证一机一号和检测共享上网的原理 (www.addesp.com)
出于利益等原因,许多校园网采取一机一号的管理方式。即一个宽带账号只能由一台规定的设备使用。同时检测共享上网以避免使用路由器或类似方式实现共享。那么这些限制背后的原理是什么呢?
by @技术头条 2023-12-01 09:48 查看详情
解决Vite打包产生的hash缓存失效问题 (www.iszy.cc)
最近发现无论改多少内容,打包出来的所有文件的 hash 都会发生变化,这样就导致了浏览器缓存失效,每次都要重新加载所有文件,这样就导致了加载速度变慢,而且也浪费我服务器流量,姑且来看看能不能解决。
by @技术头条 2023-11-29 23:46 查看详情
TinyInst 的插桩实现原理分析 (paper.seebug.org)
TinyInst 是一个基于调试器原理的轻量级动态检测库,由 Google Project Zero 团队开源,支持 Windows、macOS、Linux 和 Android 平台。同 DynamoRIO、PIN 工具类似,解决二进制程序动态检测的需求,不过相比于前两者 TinyInst 更加轻量级,更加便于用户理解,更加便于程序员进行二次开发。

本文将通过分析 TinyInst 在 Windows 平台上的插桩源码,来理解 TinyInst 的基本运行原理;为后续调试 TinyInst 的衍生工具(如 Jackalope fuzzing 工具)或二次开发打下基础。
by @技术头条 2023-11-06 22:59 查看详情