Ответ 1
Вы можете использовать функцию MySQL OCTET_LENGTH(your_column_name)
. Подробнее см. здесь.
У меня есть таблица с большими объемами данных BLOB в столбце. Я пишу утилиту, чтобы сбрасывать данные в файловую систему. Но перед сбросом мне нужно проверить, доступно ли на диске необходимое пространство для экспорта всех полей blob по всей таблице.
Пожалуйста, предложите эффективный подход для получения размера всех полей blob в таблице.
Вы можете использовать функцию MySQL OCTET_LENGTH(your_column_name)
. Подробнее см. здесь.
select sum(length(blob_column)) as total_size
from your_table
select sum(length(blob_column_name)) from desired_tablename;
К сожалению, в лучшем случае это БД.
Чтобы получить общий размер таблицы с блоками в Oracle, я использую следующее: https://blog.voina.org/?p=374
К сожалению, это не работает в DB2. Мне все еще нужно найти альтернативу.
Простой
select sum(length(blob_column)) as total_size
from your_table
не является правильным запросом, так как не будет корректно оценивать размер блоба на основе ссылки на blob, который хранится в столбце blob. Вы должны получить фактический выделенный размер на диске для blobs из репозитория blob.