Eléphant du PHP |
422 Messages
28 nov. 2008, 19:04
OK, il y a beaucoup de monde. Il peut y avoir des milliers de personnes qui consultent le site simultanément. Ce n'est pas pour cela qu'elles sont connectées simultanément à la base. On n'est pas dans un système client-serveur classique où chaque utilisateur ouvre une session le matin, bosse sur cette session toute la journée et ferme la session à 18h.
Là, on a une connexion à la base uniquement le temps de récupérer l'info. Après, c'est terminé. En gros, les 2000 connexions simultanées, c'est si 2000 personnes cliquent sur le bouton "rechercher" dans le même dixième de secondes. Ce qui veut dire que statistiquement, tu as environ 20.000 visiteurs par seconde sur ton site. Je veux bien que ce soit un "gros" site, mais renseigne toi sur les stats de consultation. D'autre part, il me semble étonnant, pour un site aussi gros de ne pas mettre les moyens en base de données nécessaires.
Et d'autre part, comme je le signalais, aller lire environ 15.000 fichiers (26x26x26), s'il y a réellement 2000 requêtes simultanées, ce n'est pas sûr que le disque dur soit capable de suivre le ryhtme. Il va falloir que ta machine arrive à gérer simultanément 2000 handlers de fichiers, que ton contrôleur de disque suive et que les têtes de lectures pédalent à fond la caisse pour arriver à servir tout le monde. A mon avis, en période de pointe, c'est une solution encore pire que la base de données. J'espère que vous êtes en RAID, parce qu'il y a de la mort de disque dans l'air ...
Bon, cela dit, je ne suis ni à ta place, ni à celle de ton admin. Je fais juste remarquer que le problème demande un peu plus de réflexion et que sauter sur la première solution proposée n'est pas forcément un bon plan.
Idée : Cela vaut peut-être le coup de monter une deuxième base de données à côté uniquement pour l'autocomplétion. Après tout, les noms de ville, ça ne change pas tous les jours.