подсчёт размера индексов всех таблиц в базе на сервере баз данных mysql

Опубликовано beregov.a.e - сб, 08/14/2021 - 10:13

При проявлении замедления работы mysql нужно погрузиться в настройки кластера. Один из аспектов настройки это работа с индексами.

Для настройки параметров работы с индексами для mysql, такими как key_buffer_size. Нужно узнать текущий размер всех индексов в целевой базе. 

Запрос точно работает для mysql 5.7:

SELECT ROUND(SUM(stat_value) /1024 /1024,2) FROM mysql.innodb_index_stats WHERE stat_name = 'size' and database_name = '$database';

Вывод будет в гигобайтах.

После этого нужно изменить значение в конфигурационном файле my.cnf секция mysqld. Значение можно добавить с запасам. Из ходя из роста базы.

key_buffer_size

для того чтобы не ждать перезагрузки можно подключившись к серверу под пользователем root. Примера задать размер 12 ГБ:

root@localhost [(none)]> set global key_buffer_size=12884901888;

 

Теги