斯蒂芬妮·贾宁:在PostgreSQL中处理BLOB

💡 原文英文,约600词,阅读约需2分钟。
📝

内容提要

PostgreSQL没有标准的BLOB类型,使用BYTEA处理二进制数据,最大1 GB。超过1 GB的数据建议用文件系统存储,支持到32 TB。存储在数据库中会导致内存占用大、备份时间长等问题。建议将二进制文件存储在文件系统中,数据库中仅记录文件位置和描述信息。除非数据量小且文件小于100 KB,否则不建议在数据库中存储BLOB。

🎯

关键要点

  • PostgreSQL没有标准的BLOB类型,使用BYTEA处理二进制数据,最大1 GB。

  • BYTEA的最大限制为1 GB,无法对二进制数据进行索引或内容搜索。

  • 在1 GB中可以存储约3000张5 MB的jpg图片或1236本英文圣经文本。

  • 超过1 GB的二进制数据建议存储在文件系统中,PostgreSQL通过OID引用这些文件。

  • 每个文件的最大限制为4 TB,所有对象的最大限制为32 TB。

  • 使用数据库存储BLOB会导致内存占用大、备份时间长、事务时间长等问题。

  • 将文件存储在文件系统中可以提高性能,文件数量和大小仅受文件系统限制。

  • 建议将二进制数据存储在文件系统中,数据库中仅记录文件位置和描述信息。

  • 只有在数据量小且文件小于100 KB时,才建议在数据库中存储BLOB。

➡️

继续阅读