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.