У меня есть MySQL innodb база данных на уровне 1.9 ГБ, показал следующей командой.
SELECT table_schema "Data Base Name"
, sum( data_length + index_length ) / 1 048 576
as "Data Base Size in MB"
, sum( data_free )/ 1 048 576
as "Free Space in MB"
FROM information_schema.TABLES
GROUP BY table_schema ;
+--------------------+----------------------+------------------+
| Data Base Name | Data Base Size in MB | Free Space in MB |
+--------------------+----------------------+------------------+
| database_name | 1959.73437500 | 31080.00000000 |
Мои вопросы:
Это означает, установил ли я innodb_buffer_pool_size на 2 ГБ или больше, целая база данных может быть загружена в память, настолько меньше чтения от дисковых запросов необходимо?
Что означает свободное пространство 31 ГБ?
Если максимальная RAM может быть выделена innodb_buffer_pool_size, 1 ГБ, действительно ли возможно указать, какие таблицы к загруженному в память, в то время как всегда сохраняют других читавшимися из диска?
Заранее спасибо.
рассмотрите возможность использования memcached в качестве уровня кэша, чтобы полностью исключить доступ к базе данных, если вам нужна более высокая производительность.
таких переменных, как 'innodb_data_file_path'
. Сообщаемое свободное пространство показывает, какая часть текущих файлов данных не используется. В вашем случае у вас есть 2 гигабайта данных, хранящихся (скорее всего) в 32 гигабайтах файлов данных InnodB, оставляя 30 гигабайт доступными.