Как выяснить, подходит ли индекс mysql целиком в памяти
Есть ли способ определить, подходит ли индекс mysql целиком в доступной памяти? Если да, то как бы я:
Определить размер индексов mysql
Определить доступную память для приложения
Определите, соответствуют ли индексы целиком в памяти
Ответ 1
Зависит от механизма хранения
MyISAM (страницы индексов кэшей из файлов .MYI)
SELECT FLOOR(SUM(index_length)/POWER(1024,2)) IndexSizesMB
FROM information_schema.tables WHERE engine='MyISAM' AND
table_schema NOT IN ('information_schema','performance_schema','mysql');
Вычтите из key_buffer_size. Если ответ > 0, то Да
InnoDB (данные кэша и индексы)
SELECT FLOOR(SUM(data_length+index_length)/POWER(1024,2)) InnoDBSizeMB
FROM information_schema.tables WHERE engine='InnoDB';
Вычтите из innodb_buffer_pool_size. Если ответ > 0, то Да