在PostgreSQL中,有必要定期清空,以防止由于事务ID包装而导致非常旧的数据丢失。我担心数据丢失也可能是SQLite3数据库的问题,如果它们没有定期清空。
此外,SQLite3 数据库经历的工作负载是否重要?我目前正在考虑在几种情况下使用 SQLite3,包括:
- 作为程序的文件格式,人们可以在其中共享文件并在不同的计算机上使用它们
- 存储应用程序设置
- 存储可能每秒记录多次的应用程序的日志(可能每小时对最近数据执行一次查询)
更新和删除的频率也很重要吗?
真空
- 删除
- 碎片,因此当您同时有大量删除和插入以及许多扫描整个表的只读查询时会有所帮助,并且
- 释放未使用的页面,因此当您删除大量数据并且之后插入很少时会有所帮助。
但这些只是优化。碎片通常只在旋转磁盘上重要,除非空间不足,否则不需要释放空间。
SQLite使用不同的事务锁定机制(更简单,更快,但不可扩展),并且不需要维护。