AlexXYZ
@AlexXYZ
O Keep Clear O

Mysql запрос с SUM(OCTET_LENGTH( LONGBLOB )) очень доло выполняется. Есть способ оптимизации?

Всем привет.

Делаю агрегатный запрос к таблице в которой хранится много разной инфы и файлов (результаты расчётов, чертежи DWG и разные логи). Сама таблица 45ГБ, записей около 1млн. Размер BLOB от 1KB до 20МБ. Любые аргегатные запросы по суммам длин других столбцов отрабатываются вполне себе быстро, но вот определение сумм длин BLOB-полей по всей таблице идёт неприлично долго - 12 минут. Можно ли как-то ускорить расчёт?

Комментарии:
1. У меня сложилось такое впечатление, что при таких агрегатных запросах база перечитывается целиком (но я могу ошибаться).
2. (Статически сделать колонку с длинами не предлагать, нужна приемлемая скорость работы с живыми данными, если такая возможна?)
3. Может это в принципе стандартное поведение MySQL?

mysql 5.7.21, Windows 10/11, HDD (100МБ/сек)
  • Вопрос задан
  • 88 просмотров
Пригласить эксперта
Ответы на вопрос 1
iMedved2009
@iMedved2009
Не люблю людей
How InnoDB Handles TEXT/BLOB Columns

Там будет часть посвященная Performance Impacts.

Сделать виртуальную колонку с длинной вас не устроит?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы