mysql определяет размер хранилища поля
Я хотел бы знать, есть ли команда mysql для определения текущего используемого фактического размера хранилища поля mysql.
Может быть, что-то вроде "show used_storage myfield FROM ... WHERE ..."
Как ни странно, я не смог бы найти ничего подобного.
(То же самое для postgresql тоже будет интересно)
Большое спасибо!
3 ответа
Для PostgreSQL вы можете использовать
ВЫБЕРИТЕ your_column, pg_column_size(your_column) FROM your_table
Полный список функций такого рода приведен в руководстве.
http://www.postgresql.org/docs/current/static/functions-admin.html
Если вы используете символьное поле данных, самое простое будет
SELECT SUM(LENGTH(myField)) From MyTable
Если вы используете какой-либо числовой тип данных, вы можете просто получить счетчик строк и умножить его на размер, например 4 для INTEGER или 8 для DOUBLE.
Однако он не будет отражать фактический размер диска. Это, наверное, намного сложнее выяснить. И даже если бы он был точным, фактический размер таблицы мог быть намного больше, чем общий размер всех столбцов из-за фрагментации и других факторов.
Вы можете получить размер (и размер индекса) всей таблицы с помощью:
SHOW TABLE STATUS LIKE 'MyTable';
Если вы скопируете только столбец, который вы хотите, во новую временную таблицу, вы сможете получить более реалистичное представление о том, сколько места фактически занимает ваше поле на диске.
Использование пространства документов MySQL:
http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html