Как сохранить и перезагрузить MySQL Query Cache, чтобы сайт работал на пиковой скорости
Я запускаю установку электронной коммерции Magento (которая работает на PHP/MySQL) на тестовом сервере. У меня довольно большой (из того, что я прочитал) query_cache_size 272 629 760 байт, и он прекрасно работает.
Сайт работает молниеносно, как только большинство запросов загружается в кеш запросов, так же быстро, как и самые быстрые производственные сайты (кроме, возможно, Google.com или Amazon.com). Но проблема у меня заключается в том, что для того, чтобы загрузить все эти запросы в кеш запросов, мне нужно вручную просмотреть сотни ссылок на сайте. Каждый раз, когда вы нажимаете на ссылку, запрос отправляется в базу данных и сохраняется в кеше. Но если я перезагружу сервер, то мне придется делать это снова и снова. Должен быть лучший способ!
В идеале, я думаю, должен быть способ "сделать резервную копию" кэша запросов перед перезапуском и загрузить его при перезапуске. Это возможно?
В противном случае мне просто нужно будет создать веб-сканер, который автоматически нажимает на все мои ссылки.
2 ответа
Помимо кеша запросов MySQL, вы должны также использовать APC (альтернативный кеш PHP) и, возможно, некоторые из встроенных в Magento механизмов полностраничного кеширования.
Это может смягчить некоторые ваши обращения к MySQL и обратно, уменьшая вашу потребность в загрунтованном кеше MySQL. Вы можете "заправить" кэш своей базы данных Magento вручную, но здесь скрывается реальная проблема, и это вовсе не позволяет использовать MySQL, особенно в Magento.
И что бы это ни стоило - вы первый человек, с которым я столкнулся, который сравнил скорость Magento со скоростью Google и Yahoo.:)
Этот вопрос может быть лучше подходит для serverfault, но это интересно, так что здесь идет:)
Magento в основном использует таблицы InnoDB, поэтому примите это во внимание, когда будете читать это и это
Я бы также порекомендовал APC за предложение @philwinkle, это сильно повлияло на производительность для меня. То же самое с использованием CDN, чтобы снять нагрузку с обслуживания небольших файлов (img/js/css)