Як дізнатися розмір таблиці SQL

Авторadmin

Як дізнатися розмір таблиці SQL

Визначення розміру таблиці в SQL Server

Ви ніколи не замислювалися, наскільки велика таблиця дійсно знаходиться у вашій базі даних? Ви знаєте, що в таблиці є мільйон рядків, але скільки місця займає це?

SQL Server надає вбудовану збережену процедуру, яку можна запустити, щоб легко показати розмір таблиці, включаючи розмір індексів . які можуть вас здивувати.

Ось приклад цього в дії:

Дуже корисний матеріал. Завжди цікаво бачити, що індекси більше, ніж фактичні дані.

Як дізнатися розміри таблиці через sql

Не так давно я зацікавився максимальним розміром таблиці у свого сайту, де продаються мої курси. Там ведеться постійна статистика відвідувань. У підсумку в одній таблиці вже більше мільйона записів. На щастя, пошук по цій таблиці потрібен тільки мені, а я можу і почекати, а додавання нового запису відбувається все одно вмить. Але я подумав, що бувають випадки, коли таблиця повинна бути максимум деякого розміру. А ось далі вона повинна або віддалятися, або створюватися нова. Як це робиться? Впізнається розмір таблиці через SQL. а далі вона або частково / повністю очищається, або переноситься в який-небудь бекап, де просто сховище старих даних. І в цій статті я покажу, як дізнатися розмір таблиці через SQL.

Ось такий запит виведе інформацію про статус таблиці:

SHOW TABLE STATUS LIKE ‘table’

Рекомендую виконати цей запит на який-небудь таблиці в PHPMyAdmin. щоб відразу побачити, що він робить. Там багато різних параметрів, але нас з Вами цікавить “Data_length”. Саме він відповідає за розмір таблиці. Перевіряючи його, Ви можете вирішувати: проводити очистку даних чи ні.

Зрозуміло, перевірку треба проводити в автоматичному режимі, наприклад, раз на добу, задавши це через cron.

Також врахуйте, що це необхідно робити тільки якщо Вам потрібна швидкодія з пошуку в цій таблиці. В іншому випадку, це взагалі не потрібно. Якщо Ви турбуєтеся про максимальний розмір таблиці, то навряд чи Вас це торкнеться. Максимальний розмір таблиці також можна знайти в цій вибірці. За максимальний розмір відповідає параметр “Max_data_length”, і він дійсно величезний, 256 ТБ.

Якщо моя статистика буде працювати в тому ж темпі, то цього розміру вистачить приблизно на мільйон років. Тому тим, хто турбується про те, що записи перестануть поміщатися, даремно це робить. А ось ті, кому потрібен максимально швидкий пошук і вибірка по таблиці, ось тим дійсно варто задуматися, а чи не можна видалити все зайве або відправити хоча б в історію старі записи?

Запропонуйте цю статтю друзям:

Якщо Вам сподобався сайт, то розмістіть посилання на нього (у себе на сайті, на форумі, в контакті):

Вона виглядає ось так:

Схожі статті

Як визначити розмір таблиць у базі даних MySQL или MariaDB

У повсякденній роботі з MySQL користуюся безкоштовною програмою DBeaver. Там є чудова функція — дізнатися повний розмір таблиць. Проблема в тому, перед тим як показати розмір та вагу таблиць програма робить запит до всього вмісту бази даних. Якщо таблиць у БД понад сотні, і розміри понад 10-20 гігабайт, оперативно дізнатися, скільки важить одна таблиця, досить складно.

Як можна через запити дізнатися деталі щодо таблиць у базі даних і окремо щодо однієї таблиці — про це стаття 🙂

Щоб визначити розмір таблиць MySQL або MariaDB, потрібно 2 дії:
1. Підключитися до сервера баз даних будь-яким зручним способом (через CONSOLE або GUI)
2. Виконати SQL запит:

SELECT table_name AS `Table`, round(((data_length + index_length) / 1024), 2) `Size in KB` FROM information_schema.TABLES WHERE table_schema = "DBName";

де, DBName — ім’я бази даних, для якої необхідно отримати список таблиць із розмірами

3. Щоб визначити список і розмір таблиць (у кілобайтах) бази даних MySQL або MariaDB, необхідно буде виконати запит:

SELECT table_name AS `Table`, round(((data_length + index_length) / 1024 ), 2) `Size in KB` FROM information_schema.TABLES WHERE table_schema = "DBName";

Для отримання розміру таблиць у мегабайтах, необхідно рядок:

SELECT table_name AS `Table`, round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB` FROM information_schema.TABLES WHERE table_schema = "DBName";

Якщо список таблиць дуже великий, то можна скоротити виведення, додавши умову в конструкцію WHERE:

WHERE table_schema = "DBName" AND table_name = "TableName";

де, DBName — ім’я бази даних; TableName — ім’я таблиці, для якої необхідно отримати розмір

SQL запит для виведення деталей за однією таблицею:

SELECT table_name AS `Table`, round(((data_length + index_length) / 1024 ), 2) `Size in KB` FROM information_schema.TABLES WHERE table_schema = "DBName" AND table_name = "TableName";

Якщо необхідно отримати обмежений список таблиць, наприклад, тих, що містять певні слова в назві, то можна скоротити виведення, додавши умову (like «FilterTableName») в конструкцію WHERE

WHERE table_schema = "DBName" AND table_name Like "FilterTableName";
SELECT table_name AS `Table`, round(((data_length + index_length) / 1024 ), 2) `Size in KB` FROM information_schema.TABLES WHERE table_schema = "DBName" AND table_name Like "%TableName%";

На цьому все 🙂 Дуже сподіваюсь, що ця інформація стане вам до нагоди.

Про автора

admin administrator