关系数据库实现的一些基本技术

  • 并发控制和事务引擎
    • 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
    • 谓词下推
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值