Недавно я обновил свой обновленный Microsoft Small Business Server 2003 с 2 ГБ ОЗУ до блестящего нового сервера под управлением Microsoft Windows Server 2016 с 64 ГБ ОЗУ. Я настроил MySQL на сервере так, чтобы он использовал «всю доступную память», потому что это единственная роль этого сервера. Общий размер единой базы данных MySQL составляет 20 ГБ, что составляет примерно треть доступной оперативной памяти.
У меня вопрос: сможет ли новый сервер прочитать всю базу данных объемом 20 ГБ с SSD-диска и загрузить ее в ОЗУ 64 ГБ?
Я ожидаю, что обновление с 2 до 64 ГБ ОЗУ улучшит скорость выполнения запросов к базе данных, но мне любопытно, какие улучшения мне следует ожидать.
Если ваша рабочая нагрузка ориентирована на чтение, и при правильной настройке (т.е. innodb_buffer_pool_size
), и если вы были привязаны к диску, вы, вероятно, получите огромный прирост производительности.
С одной уловкой: чтобы занести данные в память, вы первый нужно получить к ним доступ. Это означает, что первый доступ к строке / записи будет относительно медленным, но последующие обращения будут намного быстрее. Чтобы обойти этот этап, вы можете предварительно загрузить все данные с помощью некоторых ночных запросов SELECT (посмотрите Вот для какого-то примера).