Avant de répondre à cela, je n'ai jamais développé quelque chose d'assez populaire pour atteindre des charges de serveur élevées. Traitez-moi comme (soupir) un étranger qui vient d'atterrir sur la planète, même s'il connaît PHP et quelques techniques d'optimisation.
Je développe un outil en PHP qui pourrait atteindre un grand nombre d'utilisateurs, si cela fonctionne correctement. Cependant, bien que je sois pleinement capable de développer le programme, je suis quasiment désemparé lorsqu'il s'agit de créer quelque chose qui peut gérer un trafic énorme. Voici donc quelques questions à ce sujet (n'hésitez pas à transformer cette question en un fil de ressources également).
Bases de données
Pour le moment, je prévois d'utiliser les fonctionnalités de MySQLi en PHP5. Cependant, comment dois-je configurer les bases de données par rapport aux utilisateurs et au contenu? Ai-je réellement besoin de plusieurs bases de données? Pour le moment, tout est mélangé dans une base de données - bien que j'envisage de diffuser les données des utilisateurs dans une, le contenu réel dans une autre et enfin le contenu du site principal (modèles de modèles, etc.) dans une autre. Mon raisonnement derrière cela est que l'envoi de requêtes à différentes bases de données allégera la charge sur elles comme une base de données = 3 sources de charge. Cela serait-il également efficace s'ils étaient tous sur le même serveur?
Mise en cache
J'ai un système de modèle qui est utilisé pour créer les pages et échanger des variables. Les modèles principaux sont stockés dans la base de données et chaque fois qu'un modèle est appelé, sa copie en cache (un document html) est appelée. Pour le moment, j'ai deux types de variables dans ces modèles - une var statique et une var dynamique. Les variables statiques sont généralement des choses comme les noms de page, le nom du site - des choses qui ne changent pas souvent; les variables dynamiques sont des choses qui changent à chaque chargement de page.
Ma question à ce sujet:
Disons que j'ai des commentaires sur différents articles. Quelle est la meilleure solution: stocker le modèle de commentaire simple et rendre les commentaires (à partir d'un appel DB) chaque fois que la page est chargée ou stocker une copie mise en cache de la page de commentaires en tant que page html - chaque fois qu'un commentaire est ajouté / modifié / supprimé la page est recachée.
finalement
Quelqu'un at-il des conseils / pointeurs pour exécuter un site à haute charge sur PHP? Je suis sûr que c'est une langue utilisable à utiliser - Facebook et Yahoo! donnez-lui une grande priorité - mais y a-t-il des expériences à surveiller?