0

在 PostgreSQL 中,有必要定期进行清理,以防止由于事务 ID 环绕而导致非常旧的数据丢失。我担心如果不定期清理 SQLite3 数据库,数据丢失也可能是一个问题。

此外,SQLite3 数据库所经历的工作负载是否重要?我目前正在考虑在几个场景中使用 SQLite3,包括:

  • 作为程序的文件格式,人们可以在其中共享文件并在不同的机器上使用它们
  • 存储应用程序设置
  • 为可能每秒记录多次的应用程序存储日志(可能每小时执行一次对最近数据的查询)

更新和删除的频率也很重要吗?

4

1 回答 1

1

真空

  • 删除碎片,因此当您有大量删除和插入以及许多扫描整个表的只读查询时,它会有所帮助,并且
  • 释放未使用的页面,因此当您删除大量数据并且之后插入很少时会有所帮助。

但这些仅仅是优化。碎片通常只在旋转磁盘上很重要,除非空间不足,否则不需要释放空间。

SQLite 使用不同的事务锁定机制(更简单、更快速,但不可扩展)并且不需要维护。

于 2016-01-21T14:36:13.977 回答