关系数据库实现的一些基本技术
2016-09-27 13:13
603 查看
并发控制和事务引擎
redo log undo log
MVCC基于乐观锁的并发控制
对于undo和MVCC大致有两种实现,oracle、mysql等在表空间文件只保留一个版本,旧版本放到undolog中。pg的做法比较特殊,会在表空间文件中保留所有的副本,对于failed的事务副本、过期的副本,定期从表空间中vacuum回收掉。pg的vacuum的做法会影响性能。
2PL基于悲观锁的并发控制
每种数据库针对serializable实现也不太一样,mysql是按照2PL实现的序列化,PG实现的是基于serializable snapshot isolation。PG的SSI也有些问题,特殊情况下,也会导致write skew。
cache buffer multi write问题
mysql每次insert新数据会有triple write,第一次写binlog,第二次会把表空间文件对于的block复制一份写到另外的buffer文件,第三次才是去写block文件。当然针对多次写有有些优化的工作,例如fusionIO的硬件支持的原子写,aws aurora的存储引擎等等。
存储引擎、索引技术
B+树索引
堆表/索引表
列式存储/行式存储
前缀压缩编码/数据字典/压缩存储
事务索引
聚簇索引
多维索引
LSM-tree索引
COLA-B+tree索引
fractal tree索引
位图索引
BloomFilter
SQL/查询优化
vulcano cascading
LLVM
查询结果缓存
rule based
cost based
Join操作
hash join
nested loop join
谓词下推
redo log undo log
MVCC基于乐观锁的并发控制
对于undo和MVCC大致有两种实现,oracle、mysql等在表空间文件只保留一个版本,旧版本放到undolog中。pg的做法比较特殊,会在表空间文件中保留所有的副本,对于failed的事务副本、过期的副本,定期从表空间中vacuum回收掉。pg的vacuum的做法会影响性能。
2PL基于悲观锁的并发控制
每种数据库针对serializable实现也不太一样,mysql是按照2PL实现的序列化,PG实现的是基于serializable snapshot isolation。PG的SSI也有些问题,特殊情况下,也会导致write skew。
cache buffer multi write问题
mysql每次insert新数据会有triple write,第一次写binlog,第二次会把表空间文件对于的block复制一份写到另外的buffer文件,第三次才是去写block文件。当然针对多次写有有些优化的工作,例如fusionIO的硬件支持的原子写,aws aurora的存储引擎等等。
存储引擎、索引技术
B+树索引
堆表/索引表
列式存储/行式存储
前缀压缩编码/数据字典/压缩存储
事务索引
聚簇索引
多维索引
LSM-tree索引
COLA-B+tree索引
fractal tree索引
位图索引
BloomFilter
SQL/查询优化
vulcano cascading
LLVM
查询结果缓存
rule based
cost based
Join操作
hash join
nested loop join
谓词下推
相关文章推荐
- 数据库技术中的一些基本概念
- Silverlight与后台数据库的三种技术实现基本的互操作(转)
- 关系数据库的查询优化策略----总结了一些查询优化的方法,希望可以对大家有所帮助
- ASPNETDB 数据库关系图、表和视图 基本表和独立表(转载)
- 基于关系数据库系统链式存储的树型结构数据,求某结点下的子树所有结点算法(t-sql语言实现)
- (原创)基于关系数据库系统链式存储的树型结构数据,求某结点下的子树所有结点算法(t-sql语言实现)
- 基于SVG技术实现WebGIS的基本功能(1)
- 在VC中应用MSXML DOM 的一些基本实现方法
- 关系数据库的索引技术
- 利用微软WebService技术实现远程数据库存取 利用web服务在不同站点间共享同一数据库
- 添加数据库到SQLServer 及一些恢复技术
- 数据库---SQL双重否定、函数依赖、关系代数的基本运算
- Remoting基本实现的一些代码样例程序
- 基本面分析与技术分析关系
- 对数据库中列的一些基本的操作的SQL命令
- 在VC中应用MSXML DOM 的一些基本实现方法
- 关系数据库的查询优化策略----总结了一些查询优化的方法,希望可以对大家有所帮助(原创)
- 基于SVG技术实现WebGIS的基本功能(2)
- 获取数据库表的一些基本信息
- JAVA实现关系数据库的翻页 by masse@CSDN: