重庆思庄Oracle、Redhat认证学习论坛
标题:
PostgreSQL的多版本MVCC实现方式的优势和劣势
[打印本页]
作者:
郑全
时间:
2023-12-4 22:23
标题:
PostgreSQL的多版本MVCC实现方式的优势和劣势
实现MVCC的方法有以下两种。
·第一种:写新数据时,把原数据移到一个单独的位置,如回滚段中,其他用户读数据时,从回滚段中把原数据读出来。
·第二种:写新数据时,原数据不删除,而是把新数据插入进来。
PostgreSQL数据库使用的是第二种方法,
Oracle数据库和MySQL数据库中的InnoDB引擎使用的是第一种方法.
到底哪种好,争论真的很大,来自PG的OPENGUASS,就调整了这个,使用ORACLE的方式来实现 MVCC。
看看专家怎么说:
相对于InnoDB和Oracle,PostgreSQL的多版本的优势在于以下几点:
·事务回滚可以立即完成,无论事务进行了多少操作。
·数据可以进行很多更新,不必像Oracle和InnoDB那样需要经常保证回滚段不会被用完,也不会像Oracle数据库那样,经常遇到“ORA1555”错误的困扰。
相对于InnoDB和Oracle,PostgreSQL的多版本的劣势在于以下几点:
·旧版本数据需要清理。PostgreSQL清理旧版本称为VACUUM,并提供了VACUUM命令进行清理。
·旧版本的数据会导致查询更慢一些,因为旧版本的数据存储于数据文件中,查询时需要扫描更多的数据块
欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/)
Powered by Discuz! X3.2