MySQL открытые и открытые таблицы
У меня есть 81 таблица в базе данных innodb (MySQL). Данные в них составляют 2 ГБ на диске. Мои запросы редко объединяют более 3 таблиц одновременно. Мой размер innodb_buffer_pool составляет около 2,1 ГБ.
Запуск mysqltuner.pl я получаю следующее!
[!!] Частота попаданий в кеш таблиц: 7% (открыто 274, открыто 3К)
Из mysqlreport я вижу, что у меня действительно есть 274 открытых, 3K открытых и что мой потолок для открытого 400.
Тем не менее, делая это
show status like '%open%'
получает этот результат
...
Open_table_definitions 161
Open_tables 274
Opened_files 150232
Opened_table_definitions 0
Opened_tables 0
Два вопроса:
1) Разве "открытые таблицы" не должны указывать 3K, а не ноль в приведенном выше результате из статуса показа, например "%open%"?
2) Любой совет, что мне нужно сделать, чтобы исправить это! т.е. низкая частота обращений к кешу таблиц?
Спасибо
PS. Если это поможет, второй! У меня в mysqltuner.pl есть это:
[!!] Временные таблицы, созданные на диске: 29% (35 КБ на диске / 119 КБ всего)
2 ответа
1) Разве "открытые таблицы" не должны указывать 3K, а не ноль в приведенном выше результате из статуса показа, например "% open%"?
ДА, результат был получен в основном из SHOW STATUS и SHOW VARIABLES и некоторых базовых операций исчисления.
2) Любой совет, что мне нужно сделать, чтобы исправить это! т.е. низкая частота обращений к кешу таблиц? Попадание в кеш таблиц происходит из-за: 1. слишком мало открытых таблиц 2. общего количества таблиц во всех базах данных <<< размер открытой таблицы
show status like '%open%'
показывает состояние для текущего сеанса, а не для всей БД MySQL ( SHOW STATUS Syntax). Для получения глобального статуса используйтеshow global status like '%open%'
вместо.Одна проблема, с которой я столкнулся для mysqltuner.pl, заключается в том, что всякий раз, когда он запускается, он открывает все таблицы в базе данных, таким образом увеличивая статистику открываемых таблиц. Если это не так, руководство MySQL предложило установить
table_open_cache
к * .