Les administrateurs de bases de données passent une partie considérable de leur vie à peaufiner et expérimenter pour améliorer les performances du SGBD. Lorsqu'il s'agit de diagnostiquer les retards des applications et les problèmes de performances, une base de données (et une requête de base de données) peu performante est souvent la cause la plus courante.
On peut voir que le contenu suivant ne détermine pas complètement les performances de MySQL. Nous souhaitons simplement revoir les points clés des chapitres précédents et fournir un point de départ pour la discussion et l’analyse de l’optimisation des performances.
Voici 17 points clés pour une optimisation spécifique des performances de MySQL :
1 Tout d'abord, MySQL (comme tous les SGBD) a des recommandations matérielles spécifiques. Lors de l'apprentissage et de la recherche sur MySQL, l'utilisation de n'importe quel ancien ordinateur comme serveur fonctionnera. Mais pour les serveurs utilisés en production, vous devez vous en tenir à ces recommandations matérielles.
2. De manière générale, les SGBD de production critiques doivent fonctionner sur leur propre serveur dédié.
3.MySQL est préconfiguré avec une série de paramètres par défaut, et il est généralement bon de commencer avec ces paramètres. Mais après un certain temps, vous devrez peut-être ajuster l'allocation de mémoire, la taille du tampon, etc. (Pour afficher les paramètres actuels, utilisez SHOW VARIABLES; et SHOW STATUS; .)
4.MySQL est un SGBD multi-utilisateurs et multithread. En d'autres termes, il effectue souvent plusieurs tâches en même temps. . Si l'une de ces tâches est lente, toutes les requêtes le seront. Si vous rencontrez des performances médiocres, utilisez SHOW PROCESSLIST pour afficher tous les processus actifs (ainsi que leurs ID de thread et leurs temps d'exécution). Vous pouvez également utiliser la commande KILL pour mettre fin à un processus spécifique (vous devez être connecté en tant qu'administrateur pour utiliser cette commande).
5. Il existe toujours plusieurs façons d'écrire la même instruction SELECT. Vous devez expérimenter des jointures, des unions, des sous-requêtes, etc. pour trouver la meilleure approche.
6. Utilisez l'instruction EXPLAIN pour laisser MySQL expliquer comment il exécutera une instruction SELECT.
7. De manière générale, les procédures stockées s'exécutent plus rapidement que l'exécution de chaque instruction MySQL une par une.
8. Le type de données correct doit toujours être utilisé.
9. Ne récupérez jamais plus de données que nécessaire. En d'autres termes, n'utilisez pas SELECT * (sauf si vous avez vraiment besoin de chaque colonne).
10. Certaines opérations (y compris INSERT ) prennent en charge un mot-clé facultatif DELAYED, qui, s'il est utilisé, rendra immédiatement le contrôle au programme appelant et effectuera réellement l'opération dès que possible.
11. Lors de l'importation de données, la soumission automatique doit être désactivée. Vous souhaiterez peut-être également supprimer des index (y compris les index FULLTEXT), puis les reconstruire une fois l'importation terminée.
12. Les tables de la base de données doivent être indexées pour améliorer les performances de récupération des données. Déterminer ce qu'il faut indexer n'est pas une tâche triviale et nécessite d'analyser les instructions SELECT utilisées pour trouver les clauses WHERE et ORDER BY en double. Si une simple clause WHERE met trop de temps à renvoyer des résultats, vous pouvez en conclure que la ou les colonnes utilisées sont l'objet qui doit être indexé.
13. Avez-vous une série de conditions OU complexes dans votre instruction SELECT ? En utilisant plusieurs instructions SELECT et une instruction UNION les connectant, vous pouvez constater des améliorations spectaculaires des performances.
14. Les index améliorent les performances de récupération des données, mais nuisent aux performances d'insertion, de suppression et de mise à jour des données. Si vous disposez de tables qui collectent des données et qui ne sont pas recherchées fréquemment, ne les indexez que lorsque cela est nécessaire. (Des indices peuvent être ajoutés et supprimés selon les besoins.)
15.LIKE est lent. En général, il est préférable d'utiliser FULLTEXT plutôt que LIKE.
16. Les bases de données sont des entités en constante évolution. Un ensemble de tables bien optimisé peut devenir méconnaissable après un certain temps. À mesure que l'utilisation et le contenu des tables changent, l'optimisation et la configuration idéales changeront.
17. La règle la plus importante est que chaque règle sera enfreinte sous certaines conditions.
[Recommandations associées]
1. Tutoriel vidéo gratuit MySQL
3. Explication détaillée de la sauvegarde et de la maintenance de la base de données MySQL
4 Explication détaillée de l'exemple de configuration des autorisations d'accès MySQL
5.MySQL crée des comptes d'utilisateurs et supprime des comptes d'utilisateurs
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!