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