mysql 上 BLOB 的透明压缩

pow*_*ete 1 mysql compression mariadb

我正在 mysql/mariadb 中创建一个带有 BLOB 列(innoDB)的表。BLOB 列是否透明压缩?COMPRESS(..)或者我是否必须使用 , 手动压缩/解压缩数据UNCOMPRESS(..)

(据我所知postresql对BLOB列有透明压缩)

Ric*_*mes 7

MySQL 和 MariaDB 不透明压缩BLOBs

使用ROW_FORMAT=COMPRESSED,InnoDB(在 MySQL 和 MariaDB 中)可以透明地压缩。这提供了大约 2 倍的压缩,并且有各种优点和缺点。

我通常建议在客户端中进行压缩,而不是使用数据库的COMPRESS(). 这

  • 将 CPU 工作量从数据库服务器卸载到客户端。(扩展客户端比数据库主机更容易),并且
  • 减少客户端和服务器之间的网络流量。

COMPRESS()以及各种客户端语言中的等效项,为典型文本(代码、XML、英语等)提供大约 3 倍的压缩。对于图像(jpg 等)和 pdf 等,您基本上不会得到压缩,因为它们已经被压缩了。