mysql определяет размер хранилища поля - PullRequest
3 голосов
/ 21 декабря 2010

Я хотел бы знать, есть ли команда mysql для определения текущего используемого фактического размера хранилища поля mysql.

Может быть что-то вроде "show used_storage myfield FROM ... WHERE ..."

Как ни странно, я не нашел бы ничего подобного.

(То же самое для postgresql тоже будет интересно)

Большое спасибо!

Ответы [ 3 ]

3 голосов
/ 21 декабря 2010

Для PostgreSQL вы можете использовать

SELECT your_column, pg_column_size(your_column)
FROM your_table

Полный список функций такого рода приведен в руководстве.
http://www.postgresql.org/docs/current/static/functions-admin.html

1 голос
/ 21 декабря 2010

Если вы используете символьное поле данных, самое простое будет

SELECT SUM(LENGTH(myField)) From MyTable

Если вы используете какой-то числовой тип данных, вы можете просто получить счетчик строк и умножить его на размер, например 4 для INTEGER или 8 для DOUBLE.

Однако он не будет отражать фактический размер диска. Это, наверное, намного сложнее выяснить. И даже если бы он был точным, фактический размер таблицы мог быть намного больше, чем общий размер всех столбцов из-за фрагментации и других факторов.

Вы можете получить размер (и размер индекса) всей таблицы с помощью:

SHOW TABLE STATUS LIKE 'MyTable';

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

0 голосов
/ 02 апреля 2013

Использование пространства документов MySQL:

http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...