如何决定是将二进制数据存储在 Postgres 中还是文件中?
How to decide whether to store binary data in Postgres or in files?
我正在开发一个 Postgres 支持的系统,其中将存储许多二进制文件。
我至少有两个选择:
- 将它们存储在 Postgres 中。
- 将它们存储为文件。
我需要考虑哪些标准才能做出最佳决定?
我会考虑以下几点:
- 性能。在文件系统中存储二进制文件通常在读取和写入方面性能更好。
- 安全。对文件系统中文件的访问由操作系统控制,但是如果将文件存储在数据库中,则适用 PostgreSQL 访问规则。
- 备份一致性。如果将数据分开存储(文件系统和数据库)很难有一致的备份。文件系统备份和数据库备份可能不同步。
- 交易属性。文件系统不是事务性的,但显然 PostgreSQL 是。
我正在开发一个 Postgres 支持的系统,其中将存储许多二进制文件。
我至少有两个选择:
- 将它们存储在 Postgres 中。
- 将它们存储为文件。
我需要考虑哪些标准才能做出最佳决定?
我会考虑以下几点:
- 性能。在文件系统中存储二进制文件通常在读取和写入方面性能更好。
- 安全。对文件系统中文件的访问由操作系统控制,但是如果将文件存储在数据库中,则适用 PostgreSQL 访问规则。
- 备份一致性。如果将数据分开存储(文件系统和数据库)很难有一致的备份。文件系统备份和数据库备份可能不同步。
- 交易属性。文件系统不是事务性的,但显然 PostgreSQL 是。