Шукати в цьому блозі

пʼятниця, 21 вересня 2018 р.

Список великих таблиць у MySQL

Стала задача, з'ясувати таблиці та індекси займають більш за все місця. Одне з можливих рішень - запит до самої БД:
SELECT CONCAT(table_schema, '.', table_name),
       CONCAT(ROUND(table_rows / 1000000, 2), 'M')                                    rows,
       CONCAT(ROUND(data_length / ( 1024 * 1024 * 1024 ), 2), 'G')                    DATA,
       CONCAT(ROUND(index_length / ( 1024 * 1024 * 1024 ), 2), 'G')                   idx,
       CONCAT(ROUND(( data_length + index_length ) / ( 1024 * 1024 * 1024 ), 2), 'G') total_size,
       ROUND(index_length / data_length, 2)                                           idxfrac
FROM   information_schema.TABLES
ORDER  BY data_length + index_length DESC
LIMIT  10;

Отримуємо вивід на кшталт наступного:
+---------------------------------------+---------+--------+-------+------------+---------+
| CONCAT(table_schema, '.', table_name) | rows    | DATA   | idx   | total_size | idxfrac |
+---------------------------------------+---------+--------+-------+------------+---------+
| zabbix.history_uint                   | 492.87M | 12.36G | 9.40G | 21.76G     |    0.76 |
| zabbix.trends_uint                    | 38.00M  | 1.55G  | 0.81G | 2.36G      |    0.52 |
| zabbix.events                         | 8.82M   | 0.84G  | 1.09G | 1.93G      |    1.30 |
| zabbix.history                        | 20.60M  | 0.89G  | 0.76G | 1.65G      |    0.85 |
| zabbix.event_recovery                 | 2.69M   | 0.35G  | 0.31G | 0.66G      |    0.89 |
| zabbix.problem                        | 1.40M   | 0.20G  | 0.26G | 0.46G      |    1.29 |
| zabbix.items                          | 0.11M   | 0.10G  | 0.03G | 0.12G      |    0.27 |
| zabbix.history_str                    | 0.97M   | 0.08G  | 0.04G | 0.11G      |    0.46 |
| zabbix.trends                         | 1.07M   | 0.04G  | 0.02G | 0.06G      |    0.53 |
| zabbix.triggers                       | 0.05M   | 0.03G  | 0.00G | 0.03G      |    0.16 |
+---------------------------------------+---------+--------+-------+------------+---------+
10 rows in set (8.62 sec)