Database-Recommendation
除了 MS SQL Server,我們在任何其他數據庫中是否有類似文件表/文件流的支持?
我正在尋找 Microsoft SQL Server 的文件表/文件流功能的替代方案。原因是我真的很想使用 SQL Server 文件表,但我在 Linux 上使用 docker。
不幸的是,微軟在文件表方面沒有為 Linux 提供任何支持。請參閱仍然打開的此問題。不過最好使用 MySQL 或 PostgreSQL。
SQL Server 文件表使用作業系統的文件系統來儲存文件並在 SQL 表中同步這些文件值。它比保存 BLOB 快得多。此外,如果我執行數據庫備份,它會被備份。因此,它使用文件系統來提高速度,同時保持與數據庫的同步。我還可以通過文件系統和/或事務訪問文件。
過去的替代實現是將文件儲存在共享位置並將其位置的引用儲存在數據庫中的表中。
以下是現代 DBMS 的目前選項:
- Oracle PL/SQL -將文件和其他文件數據載入到 Oracle 數據庫中:帶有 BFile 或外部表的全文或二進制數據可能最接近您的案例。
- MySQL: BLOB Storage : MySQL 中似乎沒有太多選擇(除了儲存對文件位置的引用)。
- PostgreSQL:儲存二進制數據&在 PostgreSQL 中儲存文件是否存在性能問題?:可以使用bytea數據類型或將數據儲存在專用表中的Large Object特性。
- MongoDB:BSON 類型和GridFS:BSON 數據類型可以儲存最大 16 MB 的數據,之後 GridFS 是更大儲存(尤其是二進制數據)的解決方案。
- SQLite:我們可以在 SQLite 數據庫(Android)中儲存 .doc .pdf 和 .jpg 文件嗎?& SQLite 第 3 版中的數據類型:BLOB 是 SQLite 中的首選。
- MariaDB:LOAD_FILE:MariaDB 似乎根本沒有太多支持,但通常它們也使用具有 LOAD_FILE 功能的 BLOB 儲存。
- AWS:SimpleDB:雖然這不能通過 Docker 實現,但僅供任何堅持在數據庫中儲存文件的人參考,他們的 SimpleDB(在他們的一些其他服務中)提供了在數據庫中儲存文件和使用元數據的方法標記它們是什麼類型的文件(通常利用 S3 儲存桶)。