【外评】为什么 SQLite(在生产中)的声誉如此糟糕?

为什么?

  • 大多数人都是从网络工作负载的角度来看待这个问题的。通常,我们使用 PostgreSQL 等客户端-服务器数据库。但是,SQLite 在移动设备或嵌入式设备等许多其他情况下也能大显身手。
  • 长期以来,SQLite 不允许并发写入和读取。WAL 模式改变了这一状况,在该模式下,一个写入器可以有多个读取器。
  • 但您仍然不能拥有多个并发写入器。这立即让人们望而却步。您的工作负载可能需要,也可能不需要。
  • SQLite 没有很好的备份和复制功能。这是一个大问题,但 Ben Johnson 通过 Litestream 改变了整个局面。我认为这是对 SQLite 生态系统最具影响力的贡献之一。
  • 有些 ORM/库的默认设置非常糟糕。例如,不设置 PRAGMA busy_timeout
  • 有趣的小故事我开始学习 Django 编程时,文档直接说 SQLite 不适合用于生产。很长一段时间我都有这样的错误印象。后来我开始在自己的用例中使用它,才意识到其中的利弊。

SQLite 和其他数据库一样,各有利弊。对于大多数应用和规模而言,它是完美的。对于其他任何应用,您都可以使用 PostgreSQL。

TLDR: SQLite会给你一记耳光。你会没事的。

本文文字及图片出自 Why does SQLite (in production) have such a bad rep?

你也许感兴趣的:

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注