MVCC in Database

2016 Dec 23

Multiversion concurrency control(MVCC)是数据库实现并发访问的一种方法。 在MVCC下一个row会有多个版本。 比如对一个row做UPDATE操作时,不会修改原始的row,而是作用在这个row的一个新的拷贝上。 MVCC在实现并发时不需要引入锁。 读、写操作不会相互阻塞。

很多数据库都实现了MVCC,比如PostgreSQL和Oracle。

更多参考

Multiversion concurrency control

PostgreSQL Concurrency with MVCC

Mvcc Unmasked - Bruce Momjian

Flyway,数据库升级工具

2016 Dec 3

Flyway是一种数据库升级工具,支持通过sql脚本或者java代码进行数据库升级。

Hash Join

2016 Oct 13

Hash join是数据库实现join操作的一种算法。

  • First prepare a hash table of the smaller relation. The hash table entries consist of the join attribute and its row.
  • Once the hash table is built, scan the larger relation and find the relevant rows from the smaller relation by looking in the hash table.

3种基本的join实现算法:

Three fundamental algorithms for performing a join operation exist: nested loop join, sort-merge join and hash join.

Nested loop join就是两个简单粗暴的for loop。