Экспортируйте столбец blob из mysql дБ на диск и заменяйте его новым именем файла - PullRequest
1 голос
/ 03 апреля 2020

Итак, я работаю над устаревшей базой данных, и, к сожалению, производительность базы данных очень низкая. Простой запрос на выборку может занять до 10se c .in таблиц с менее чем 10000 записями.

Итак, я попытался выяснить проблему и обнаружил, что удаление столбца, который они использовали для хранения файлов (в основном видео и изображений) Устранить проблему и улучшить производительность.

Наряду с добавлением правильных индексов, я смог выполнить точно такой же запрос, который раньше занимал 10-15se c для запуска менее 1se c.

Итак, мой вопрос. Существует ли какой-либо уже существующий инструмент или сценарий, который я могу использовать, чтобы помочь мне экспортировать эти BLOB-объекты (видео) из базы данных и сохранить их на диск и обновить строку с новым именем файла / путем к файлу в файловой системе?

Если его там нет какой-нибудь правильный способ оптимизировать базу данных так, чтобы эти BLOB-объекты не оказали такого существенного влияния на производительность?

подсказка некоторые клиенты, использующие эту базу данных, используют форматы высокого уровня, поэтому мы не имеем большого контроля над запросами Использование orm для извлечения строк и их отношений. Поэтому я не могу оптимизировать запросы напрямую.

1 Ответ

0 голосов
/ 03 апреля 2020

SELECT column FROM table1 WHERE id = 1 INTO DUMPFILE 'name.png';

Как насчет этого?

Это также INTO_OUTFILE вместо INTO_DUMPFILE

13.2.10.1 SELECT ... Оператор INTO Форма SELECT ... INTO в SELECT позволяет сохранять результаты запроса в переменных или записывать их в файл:

SELECT ... INTO var_list выбирает значения столбцов и сохраняет их в переменных.

SELECT ... INTO OUTFILE записывает выбранные строки в файл. Для указания указанного выходного формата c можно указать разделители столбцов и строк.

SELECT ... INTO DUMPFILE записывает одну строку в файл без какого-либо форматирования.

Ссылка : https://dev.mysql.com/doc/refman/8.0/en/select-into.html

Ссылка: https://dev.mysql.com/doc/refman/8.0/en/select.html

...