MySQL est très souvent utilisé pour concevoir des sites dynamiques.
Le problème se pose lorsque le site en question devient de plus en plus
visité (ou alors lorsqu'il comprend des scripts habituellement gros
consommateurs en MySQL lorsqu'ils ne sont pas optimisés, tels que
certains forums par exemple). Il arrive alors souvent que le serveur ne
supporte plus la charge imposée par les clients. Au mieux vous aurez une
erreur de "max_user_connections" résolvable assez facilement si vos
requêtes sont mal conçues, au pire vous pouvez avoir un plantage du
serveur MySQL qui n'arrive plus à répondre face aux requêtes qui lui
sont adressées.
Face à ces problèmes il existe plusieurs solutions. De nombreux
webmasters préfèrent directement changer le serveur (ou augmenter ses
capacités) sans se poser de questions. Il est évident qu'avant de
changer le serveur pour un plus puissant, il faut regarder si les
requêtes MySQL sont bien conçues au lieu de foncer sur un changement de
matériel sans réflexion préalable, d'une part car optimiser un script
est "gratuit" comparé à l'achat ou à l'upgrade d'un ou de plusieurs
serveurs, d'autre part car face à un script très mal optimisé,
l'augmentation des capacités matérielles a une limite. Nous allons donc
tout d'abord dans cet article présenter les quelques erreurs pouvant
être simplement réparées en ajoutant un index ou en modifiant une ou
deux lignes dans un script PHP, puis nous passerons au "lourd", à savoir
des propositions d'amélioration de structures de table MySQL en
fonction de cas concrets. Nous supposerons que les champs de vos tables
MySQL utilisent des types appropriés à leur contenu.
Voir l'article original : http://www.vulgarisation-informatique.com/optimiser-mysql.php