Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


10.4.2.3 优化BLOB类型

  • 当存储一个包含大量文本数据的大型BLOB时,考虑先对其进行压缩。不要在整个表被 InnoDBMyISAM 压缩的情况下使用这个技术。

  • 对于含有多个列的表格,可以通过将BLOB列分离到一个单独的表中,并在需要时用连接查询引用它,以减少不使用BLOB列的查询对内存的需求。

  • 由于从其他数据类型检索和显示BLOB值的性能要求可能会大不相同,你可以将包含BLOB的表放在不同的存储设备或甚至是单独的一个数据库实例上。例如,检索一个BLOB可能需要执行一个大型的顺序磁盘读取,这在传统硬盘上更适合,而不是在 固态驱动器 上。

  • 请参阅第10.4.2.2节,“优化字符和字符串类型”,了解为什么有时使用二进制 VARCHAR 列而不是等效的BLOB列是有益的。

  • 而不是测试一个非常长的文本字符串是否与之相等,你可以在一个单独的列中存储该列值的哈希,然后对该列进行索引,并在查询中测试哈希值。使用 MD5()CRC32() 函数来生成哈希值。由于哈希函数可以为不同的输入产生相同的结果,你仍然需要在查询中包含一个子句 AND blob_ column = long_string_value 来防止误匹配;性能的好处来自于对哈希值的小型、易于扫描的索引。