Размер моего буферного пула innodb составляет 8 ГБ, а моя база данных - 6 ГБ, но я вижу следующее:
Innodb_buffer_pool_reads 263,5 КБ - количество логических чтений, которые InnoDB не смогла выполнить из пула буферов и которые должны были выполнить чтение одной страницы.
С оборудованием (i7, 24 ГБ ОЗУ, SSD) и таким объемом доступной ОЗУ, почему запросы вообще выполняют «чтение одной страницы»?
Как я могу уменьшить это количество одностраничных чтений?
почему запросы вообще выполняют "чтение одной страницы?"
Потому что страницы должны быть прочитаны в буферный пул хотя бы один раз, прежде чем они станут доступными для движка. Глядя на ваши числа, 263 500 прочтений составят
263,500 pages x 16 KB/page = 4,216,000 KB read
что даже не так много, как размер вашей базы данных. Кроме того, по сравнению с вашими 3 500 000 000 innodb_buffer_pool_read_requests
это крошечное число - в вашем случае практически все обслуживается из пула буферов без дискового ввода-вывода.
Значит, эти числа не в байтах… а в количестве запросов… По математике кажется, что у вас очень мало данных, и это хорошо. Математика
(Innodb_buffer_pool_read_requests / Innodb_buffer_pool_reads) * 100
Если это число меньше 1, значит, вы в хорошей форме. Еще один хороший способ узнать, нужно ли вам больше памяти для пула, - это
SHOW ENGINE INNODB STATUS;
Вверху вы увидите это
Buffer pool hit rate 1000 / 1000, young-making rate 1 / 1000 not 0 / 1000
Если вы близки к 1000/1000, это хорошо. Все, что ниже 900/1000, я бы начал добавлять больше памяти.