文档主页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  针对 BLOB 类型的优化

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 以防止错误匹配;性能优势来自于哈希值的更小、易于扫描的索引。