Spec-Zone.ru › MySQL 5.7

8.4.2.3 Оптимизация для типов BLOB

  • При хранении большого BLOB, содержащего текстовые данные, рассмотрите возможность предварительного сжатия. Не используйте этот метод, когда вся таблица сжата с помощью InnoDB или MyISAM.

  • Для таблицы с несколькими столбцами, чтобы уменьшить потребление памяти для запросов, не использующих столбец BLOB, рассмотрите возможность разделения столбца BLOB на отдельную таблицу и ссылку на нее с помощью запроса с объединением при необходимости.

  • Поскольку требования к производительности при извлечении и отображении значения BLOB могут сильно отличаться от других типов данных, вы можете разместить таблицу, специфичную для BLOB, на другом устройстве хранения или даже в отдельной базе данных. Например, для извлечения BLOB может потребоваться большое последовательное чтение с диска, которое лучше подходит для традиционного жесткого диска, чем для .

  • Обратитесь к разделу 8.4.2.2 «Оптимизация для типов символов и строк», чтобы узнать, почему бинарный столбец VARCHAR иногда предпочтительнее эквивалентного столбца BLOB.

  • Вместо проверки на равенство с очень длинной строкой текста, можно сохранить хэш значения столбца в отдельном столбце, индексировать этот столбец и проверять хэшированное значение в запросах. (Используйте функцию MD5() или CRC32() для вычисления хэша.) Поскольку функции хэширования могут генерировать дубликаты результатов для разных входных данных, в запросе всё равно включите условие AND blob_column = long_string_value, чтобы предотвратить ложные совпадения; выгода в производительности заключается в меньшем, легко сканируемом индексе для хэшированных значений.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/optimize-blob.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API