Skip to content

数据库

Memos 的 SQLite、MySQL、和 PostgreSQL 配置。

Memos 支持三种数据库后端:

  • sqlite:单实例安装的默认选项
  • mysql 用于托管的或大型部署
  • postgres 用于托管的或大型部署

SQLite

SQLite 对于大多数的个人或是小团队,只运行单个节点的部署时,是默认的也是最适合的选择。

Memos 有很实用的默认设置,包括 WAL 模式和忙碌超时,这有助于减少常见的锁争用问题。

典型的 SQLite 设置:

bash
MEMOS_DRIVER=sqlite MEMOS_DATA=/var/opt/memos memos

如果你需要显示指定文件路径:

bash
MEMOS_DRIVER=sqlite MEMOS_DSN=/opt/memos/memos.db memos

如下条件下,SQLite 通常够用:

  • 一个实例处理所有的写操作。
  • 数据集不大。
  • 操作的便捷性比集群扩展更重要。

MySQL 和 PostgreSQL

下列时候,你可以使用 MySQL 或 PostgreSQL:

  • 你希望管理备份和工具
  • 你有正在运行的数据库服务
  • 你希望拥有更大的数据集,或是更多可选的控制项
  • 你不希望数据库文件在宿主机本地存储

举例:

bash
MEMOS_DRIVER=mysql \
MEMOS_DSN="memos_user:password@tcp(db:3306)/memos?charset=utf8mb4&parseTime=True&loc=Local" \
memos
bash
MEMOS_DRIVER=postgres \
MEMOS_DSN="postgres://memos_user:password@db:5432/memos?sslmode=disable" \
memos

如何选择

  • 单节点选择 SQLite,一切从简
  • 选择 MySQL 或 PostgreSQL,为了灵活性
  • 确保备份与您选择的数据库保持一致。
  • 如果将附件存储在数据库之外,请单独备份这些附件。

性能表现影响

数据库的选择会影响出现瓶颈的时机:

  • SQLite 通常会先暴露出写入争用问题
  • MySQL 和 PostgreSQL 则将复杂性推向了网络数据库操作和性能优化的方向
  • 即使数据库运行状况良好,附件存储也可能导致恢复和备份时间过长

最后更新于:

评论区
评论区空空如也
发送评论
名字
0 / 20
邮箱
0 / 100
评论内容
0 / 140
由于是非实名评论,所以不提供删除功能。如果你需要删除你发送的评论,或者是其他人的评论对你造成了困扰,请 发邮件给我 。同时评论区会使用 AI + 人工的方式进行审核,以达到合规要求。