gpt4 book ai didi

mysql - 与 PostgreSQL 相比,为什么 Mysql 不需要真空?

转载 作者:IT老高 更新时间:2023-10-28 23:55:04 28 4
gpt4 key购买 nike

我对 PostgreSQL 比 MySQL 更熟悉。曾在 PostgreSQL 数据库中遇到一次环绕 Id 故障,然后理解了在数据库中清理的重要性。实际上,这是一个巨大的开销工作来处理(而且它是在几个月前更新的旧版本 7.4.3 中拥有 autovacuum)。在比较 MySQL 和 PostgreSQL 时,假设 MySQL 不必处理像 PostgreSQL 中的 vacuum 这样的开销。这个假设对吗?

另外,与 PostgreSQL 相比,为什么 MySQL Dbs 不需要真空? MySQL 数据库是否存在类似于真空的其他优化替代方案?

最佳答案

Robert Haas wrote on this topic .

简而言之,InnoDB 使用回滚日志,更像 Oracle 的设计。只有最新版本的行保留在主表中。它必须管理日志清除,这是一种异步/延迟操作,具有与 PostgreSQL 的 VACUUM 相关的功能。

这意味着更新时要执行更多写入操作,并且访问旧行版本的速度要慢得多,但无需异步清理,这意味着您不会遇到表膨胀问题。相反,您可以有巨大的回滚段或用完回滚空间。

所以这是一种权衡,一种具有不同优势和问题的设计。

如果您谈论的是 MyISAM 表,那么情况就完全不同了。 PostgreSQL 的表不会吃掉你的数据。 MyISAM 会。 PostgreSQL 的表是事务性的。 MyISAM 不是。平面文件也不需要 VACUUM,这并不是一个好主意。

关于mysql - 与 PostgreSQL 相比,为什么 Mysql 不需要真空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25153532/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com