Erreur: User has exceeded the 'max_questions' resource
Si vous rencontrez cette erreur, c'est que l'administrateur du serveur a placé une restriction d'accès à mySQL pour votre site.
Chez EdelweissHosting, les serveurs sont configurés de manière très libérale afin d'offrir le maximum de ressources à tous les utilisateurs. Cependant, en cas d'abus, nous plaçons des restrictions qui touchent le site ou les sites qui commettent ces abus. Les abus mySQL sont les pires parce qu'en règle générale ils font planter les serveurs ou les ralentissent de manière très sensible. Ils peuvent occasionner des pertes de données et des pertes d'accès pour tous les clients hébergés sur les mêmes machines.
L'abus type qui donne la mise en place de ce genre de restriction, est l'usage abusif des connexions persistantes.
Pour la majorité des sites, les connexions mySQL persistantes n'apportent aucun bénéfice. La seule étape qu'elles évitent, c'est l'étape de connexion et d'authentification au niveau de la base (donc la vérification du non d'utilisateur et du mot de passe). En échange, elles maintiennent des ressources bloquées et utilisées même quand le site n'a pas de visiteurs. Nous pouvons comprendre qu'à la rigueur un site à fort traffic ouvre 1 ou 2 connexions persistantes, mais si on en voit une douzaine, c'est que les ressources ne sont pas respectées.
Pour éviter les soucis, dans vos scripts utilisez:
mysql_connect
au lieu de:
mysql_pconnect
Les connexions persistantes sont utilisées surtout pour les très gros sites qui utilisent un serveur dédié rien que pour faire tourner mySQL. Elles sont également utilisées pour faire tourner en cluster plusieurs serveurs mySQL et les copier les uns vers les autres toutes les X secondes.
Pour le site habituel du particulier, une connexion permanente n'offre aucun avantage. De plus, dans certains cas, une connexion permanente peut aboutir à un mix de requêtes incomplètes qui vont corrompre votre base et vous faire passer un bon weekend à la restaurer.