Как узнать размеры таблицы через SQL
Не так давно я заинтересовался максимальным размером таблицы у своего сайта, где продаются мои курсы. Там ведётся постоянная статистика посещений. В итоге в одной таблице уже больше миллиона записей. К счастью, поиск по этой таблице нужен только мне, а я могу и подождать, а добавление новой записи происходит всё равно моментально. Но я подумал, что бывают случаи, когда таблица должна быть максимум некоторого размера. А вот дальше она должна либо удаляться, либо создаваться новая. Как это делается? Узнаётся размер таблицы через SQL, а дальше она либо частично/полностью очищается, либо переносится в какой-нибудь бэкап, где просто хранилище старых данных. И в этой статье я покажу, как узнать размер таблицы через SQL.
Вот такой запрос выведет информацию о статусе таблицы:
SHOW TABLE STATUS LIKE 'table'
Рекомендую выполнить этот запрос на какой-нибудь таблице в PHPMyAdmin, чтобы сразу увидеть, что он делает. Там много различных параметров, но нас с Вами интересует "Data_length". Именно он отвечает за размер таблицы. Проверяя его, Вы можете решать: проводить очистку данных или нет.
Разумеется, проверку надо проводить в автоматическом режиме, например, раз в сутки, задав это через cron.
Также учтите, что это необходимо делать только если Вам требуется быстродействие по поиску в этой таблице. В другом случае, это вообще не нужно. Если Вы беспокоитесь о максимальном размере таблицы, то едва ли Вас это коснётся. Максимальный размер таблицы также можно найти в этой выборке. За максимальный размер отвечает параметр "Max_data_length", и он действительно огромен, 256 ТБ.
Если моя статистика будет работать в том же темпе, то этого размера хватит примерно на миллион лет. Поэтому тем, кто беспокоится о том, что записи перестанут помещаться, зря это делает. А вот те, кому нужен максимально быстрый поиск и выборка по таблице, вот тем действительно стоит задуматься, а нельзя ли удалить всё лишнее или отправить хотя бы в историю старые записи?
-
- Михаил Русаков
Комментарии (2):
Очень полезная статья! Как всегда радуете! Спасибо большое!
Ответить
Согласен с предидущим оратором...
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.