MVCC in Database
Multiversion concurrency control(MVCC)是数据库实现并发访问的一种方法。
在MVCC下一个row会有多个版本。
比如对一个row做UPDATE
操作时,不会修改原始的row,而是作用在这个row的一个新的拷贝上。
MVCC在实现并发时不需要引入锁。
读、写操作不会相互阻塞。
很多数据库都实现了MVCC,比如PostgreSQL和Oracle。
更多参考
Multiversion concurrency control
...
Hash Join
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。