2 表和索引结构
2021-01-14 11:55:56 0 举报
AI智能生成
《数据库索引设计与优化》读书笔记之一
作者其他创作
大纲/内容
结构
索引页和表页
一般4K
缓冲池和I/O活动一般都是基于页的
索引行
值+指针
索引结构
B树索引
表行
三种读I/O
同步读
读取顺序
1DBMS缓冲池
2磁盘服务器缓冲区
3一次随机读耗时约10ms
顺序读
场景
全表扫描
全索引扫描
索引片扫描
通过聚簇索引扫描表行
优势
顺序读一页0.1ms
可以预读
辅助式随机读
自动跳跃式顺序读
一系列不连续读行按照同一个方向扫描
磁盘服务器提前读取
DBMS动态预读
列表预读
先排序,主动创造跳跃式顺序读
数据块预读
并行读取
同步异步
同步
进行I/O操作时,DBMS不能进行其他操作,必须等待
异步
异步读是前一步的页尚在处理时就被提前发起
大部分的数据库写是异步的
索引设计
I/O时间估值
磁盘空间
本地磁盘
磁盘服务器
内存成本
DBMS特性
页
表页的大小限定了表行的最大长度
表聚簇
跟聚簇索引含义不同
索引行
在一个索引上,当前DBMS所能支持的列的数量上限
表行
聚簇索引
使得表行的存储顺序尽可能地与索引行的顺序保持一致
一张表上只能有一个聚簇索引
索引组织表
将表上的所有的列复制到索引上
其余的索引(次级索引)都指向包含表行的那个索引
页邻接
B树索引的替代品
位图索引
适用场景
谓词组合数量太多
更新操作是批量进行的
散列
已知主键值的情况下读取一个表行最快的方式
缺点
需要不断监视并调整空间利用率
无法支持范围谓词
0 条评论
下一页