У меня есть веб-сайт, который начинает расширяться за рамки простой производительности и настройки. Это приложение PHP с MySQL в качестве бэкэнда. MySQL правильно настроен, а код оптимизирован.
Дело в том, что я вижу, что могу использовать некую денормализацию для ускорения работы.
Предположим, у вас есть сайт, похожий на ebay или Amazon. В вашей базе данных есть продукты с некоторой связанной с ними информацией (продавец, покупатели, купившие продукт, город, штат и т. Д.). Это будет несколько таблиц в реляционной базе данных, и неплохо было бы сохранить их таким образом, чтобы делать хорошие запросы. Но, например, для домашней страницы у вас может быть один денормализованный документ (например, в MongoDB). Это может быть коллекция с последними продуктами, денормализованная, наподобие этой:
products = {
{
id:13,
name:"Some product",
city:"aCity",
state:"aState",
price:"10"
},
{
id:123,
name:"another product",
city:"aCity",
state:"aState",
price:"10"
}
}
Таким образом, я мог бы запросить эту коллекцию вместо базы данных MySQL (со всеми задействованными соединениями), и все могло бы работать очень быстро.
Теперь, вот вопрос. Когда и как бы вы денормализовали эти данные? Например, я мог бы решить, что хочу денормализовать данные, когда они вставлены.
Итак, в моем "create-product.php" (проще говоря). Я мог бы выполнить всю «вставку в» для mysql, а после этого я мог бы сохранить коллекцию Mongo.
Или я мог бы просто запустить программу на сервере. Или заставьте cron искать самые свежие продукты.
Все это возможности. Чем ты занимаешься? Каков ваш опыт?
Большое спасибо.