fabbelgique Posté 16 Décembre 2006 Posté 16 Décembre 2006 Bonjour, j'ai besoin de vos lanternes "bien éclairées" pour répondre à une petite question que je n'arrive pas à comprendre... Je vais essayé d'être le plus clair possible (c'est pas gagné avec moi) Voilà, j'ai deux sites (portail php). Il s'agit de deux communautés, une avec un peu plus de 25.000 membres inscrits (A) et une autre plus récente avec un peu plus de 5000 membres inscrits (. hébergés tous les deux un serveur dédié. Je ne m'y connais pas en serveu mais j'ai les infos suivantes: Processeur P4 Cadence 3.0 GHz Disque dur 2 x 80 Go Carte RAID 3ware 8000 administrable à distance Type du disque dur IDE RAM 1024 Mo Carte réseau 100 Mbps Bande passante garantie 24x7 : 2 Mbps Débit crête (burst) : 5 Mbps Bande passante totale : 7 Mbps Le nombre de connectés en même temps est souvent d'environ 200-250 sur le A et 100-150 sur le B. Les sites contiennent des fichiers à télécharger, des news, des commentaires, des livres d'or, des forums bref comme tout portail. Le problème est que le site A rame puis bloque le site et affiche une fenêtre du script comme quoi la base MYSQL est saturée. Mon hébergeur confirme que le problème vient de MYSQL. J'admet bien entendu que les portails sont généralement lourd en ressource mais ce que je comprends pas bien, c'est que quand le site A est planté le B l'est aussi mais... si le A rame comme la plupart du temps pour le moment, le B ne rame pas et fonctionne à merveille... !? Ma question est pourquoi les deux sites plantent ensemble mais ne rament pas ensemble ? Merci d'avance PS:Pour continuer à faire tourner les deux sites, je pense passer sur un Dual Core.
Slimer Posté 16 Décembre 2006 Posté 16 Décembre 2006 Je ne suis pas sur de ma réponse mais lors de la création de ta table ta clés primaire ( généralement appelé id_quelque chose) tu l'a mise à combien parce que si tu l'a mise à 2 par exemple elle sature au bout de 99 connectés (je crois que c'ets ça). Donc si tu a compris mon explication tu dois mettre ta clés primaire à un chiffre plus grand ceci lui permettra d'avoir plus de personnes connectées sans que Mysql rame.
Dan Posté 16 Décembre 2006 Posté 16 Décembre 2006 Je ne suis pas sur de ma réponse mais lors de la création de ta table ta clés primaire ( généralement appelé id_quelque chose) tu l'a mise à combien parce que si tu l'a mise à 2 par exemple elle sature au bout de 99 connectés (je crois que c'ets ça). Donc si tu a compris mon explication tu dois mettre ta clés primaire à un chiffre plus grand ceci lui permettra d'avoir plus de personnes connectées sans que Mysql rame. Là je reconnais que j'ai du mal à suivre, et tu fais bien de dire "je ne suis pas sûr..." Je ne vois pas en quoi une clé primaire peut faire ramer mysql, sauf si son index est manquant (ou détruit). Le nombre maximum de connectés sous mysql est défini dans le fichier de config mysql, le plus souvent /etc/my.cnf, et non dans une "cle primaire" Dan
Slimer Posté 16 Décembre 2006 Posté 16 Décembre 2006 (modifié) oups autant pour moi alors je pensais que lorsque que tu défini mal tes clés primaire celle ci "ce bloque" si tu as mal défini le type de ton attribut et son nombre donc si tu met 2 à id en INT il ce bloque " lorsqu'il arrive à 100" mais bon visiblement le site fabbelgique les connectés ne sont pas inscrit dans la base de données donc ma réponse ne marche pas Modifié 16 Décembre 2006 par Slimer
Dan Posté 16 Décembre 2006 Posté 16 Décembre 2006 @fabbelgique, Si mysql ne sature que sur l'un des sites, tu as probablement un index qui n'est plus à jour et cela charge ton serveur inutilement. Il est aussi possible qu'un fichier index manque, tout simplement. Il faut t'assurer que tous les champs renseignés après un "WHERE" aient un index. Sinon c'est "bonjour les dégâts" en cas de grosses tables. La meilleure manière de remettre tous les fichiers d'une base à jour est d'utiliser "myisamchk" (il faut que mysql soit arrêté pour ce faire)
fabbelgique Posté 16 Décembre 2006 Auteur Posté 16 Décembre 2006 Merci pour vos réponses. Je viens de chercher sur le Net ce qu'étais un index dans MYSQL, c'est ok je comprends plus ou moins, par contre, ils se trouvent ou les "WHERE" ? Je les vois dans phpmyadmin j'imagine ? Je n'ai pas vu de "where" dans les tableaux où on voit les "Champ Type Attributs Null Défaut Extra Action" En parlant de phpmyadmin, Je ne sais pas si il y a un rapport avec les mises à jour dont tu parles mais quand je vais dans mon phpmyadmin, ça dit: Bienvenue à phpMyAdmin 2.6.2 MySQL 3.23.58 Peux tu encore m'aider stp ?
iNCiTE Web Posté 17 Décembre 2006 Posté 17 Décembre 2006 (modifié) Non ce n'est pas un type de champ, la clause WHERE compose tes requêtes SQL. Comme par exemple : SELECT id FROM tatable WHERE isActif = 1 C'est donc un critère de recherche, et tu dois vérifier qu'il existe bien un index dans la table tatable sur le champ isActif dans notre cas... Et oui tu peux voir et modifier tout ça dans phpMyAdmin Modifié 17 Décembre 2006 par iNCiTE Web
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant