Прежде чем ответить на это, я никогда не разрабатывал ничего достаточно популярного, чтобы достичь высоких нагрузок на сервер. Обращайтесь со мной как (вздох) инопланетянин, который только что приземлился на планете, хотя тот, кто знает PHP и несколько методов оптимизации.
Я разрабатываю инструмент в PHP, который может получить довольно много пользователей, если он будет работать правильно. Однако, хотя я полностью готов к разработке программы, я почти не знаю, когда дело доходит до создания чего-то, что может иметь дело с огромным трафиком. Поэтому здесь несколько вопросов (не стесняйтесь превращать этот вопрос в поток ресурсов, а также).
Базы данных
В настоящий момент я планирую использовать функции MySQLi в PHP5. Однако как мне настроить базы данных по отношению к пользователям и контенту? Мне действительно нужны несколько баз данных? В настоящий момент все перемешалось в одну базу данных, хотя я рассматривал возможность распространения пользовательских данных на один, фактический контент на другой и, наконец, на основной контент сайта (мастера шаблонов и т.д.) На другой. Мое рассуждение заключается в том, что отправка запросов в разные базы данных облегчит нагрузку на них как на один источник базы данных = 3. Кроме того, это все равно будет эффективным, если все они будут на одном сервере?
Кэширование
У меня есть система шаблонов, которая используется для сборки страниц и замены переменных. Мастер-шаблоны хранятся в базе данных, и каждый раз, когда вызывается шаблон, вызывается его кешированная копия (html-документ). На данный момент у меня есть два типа переменных в этих шаблонах - статический var и динамический var. Статические вары обычно такие вещи, как названия страниц, название сайта - вещи, которые часто не меняются; динамические вары - это вещи, которые изменяются при каждой загрузке страницы.
Мой вопрос по этому вопросу:
Скажем, у меня есть комментарии к различным статьям. Это лучшее решение: храните простой шаблон комментария и выставляйте комментарии (из вызова БД) каждый раз, когда страница загружается или хранит кешированную копию страницы комментариев в виде html-страницы - каждый раз, когда комментарий добавляется/редактируется/удаляется страница будет сохранена.
Наконец
Есть ли у кого-нибудь советы/указатели на запуск сайта с высокой нагрузкой на PHP. Я уверен, что это рабочий язык для использования - Facebook и Yahoo! дайте ему большой приоритет - но есть ли какие-то переживания, которые я должен соблюдать?