代码之家  ›  专栏  ›  技术社区  ›  An̲̳̳drew Chad Okere

真空数据库意味着什么?

  •  26
  • An̲̳̳drew Chad Okere  · 技术社区  · 16 年前

    由引用 this Firefox bug ,清空数据库的操作完成了什么?此操作是由所有现代数据库软件支持,还是仅由某些软件支持?

    4 回复  |  直到 9 年前
        1
  •  34
  •   Kevin    9 年前

    使用的数据库 MVCC 要将事务彼此隔离,需要定期扫描表以删除过时的行副本。在MVCC中,当一行被更新或删除时,它不能立即被回收,因为可能有活动的事务仍然可以看到该行的旧版本。而不是检查情况是否如此,这可能是相当昂贵的,旧的行被假定保持相关。回收空间的过程被延迟,直到表被清空,根据数据库的不同,可以自动或显式地启动该表。

        2
  •  5
  •   MindStalker    16 年前

    它专门指的是SQL Lite真空命令。 http://www.sqlite.org/lang_vacuum.html

    它正在删除删除语句中剩余的空间。

        3
  •  1
  •   user3490256    12 年前

    “vacuumdb”在mysql、sqlite和postgresql中。在Postgres中,vacuumdb标识被删除行占用的空间,并将其编目以备将来使用。真空完全'做一个更全面的检查和移动记录到新创造的空间。

        4
  •  0
  •   jamieb    16 年前

    对文件系统进行碎片整理非常类似。有关 PGSQL docs .

    推荐文章