Le contenu de cet article est une introduction (images et textes) sur l'optimisation des bases de données MySQL. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
D'une part, l'optimisation de la base de données consiste à identifier les goulots d'étranglement du système et à améliorer les performances globales de la base de données MySQL. D'autre part, elle nécessite une conception structurelle raisonnable et un ajustement des paramètres pour améliorer la vitesse de réponse de l'utilisateur. , et en même temps, il doit être aussi efficace que possible. Économisez les ressources système afin que le système puisse fournir une plus grande charge (Recommandations associées : Tutoriel MySQL)
1. 🎜>
2. OptimisationL'auteur divise l'optimisation en deux catégories, l'optimisation douce et l'optimisation dure implique généralement l'exploitation de la base de données, tandis que l'optimisation dure implique l'exploitation. le matériel du serveur et les paramètres des paramètres.2.1 Optimisation logicielle2.1.1 Optimisation de l'instruction de requête1. Tout d'abord, nous pouvons utiliser EXPLAIN ou DESCRIBE (abréviation : DESC). commande pour analyser les informations d'exécution d'une instruction de requête.
2. Exemple :
DESC SELECT * FROM `user`
Table d'analyse : utilisez le mot-clé ANALYZE, tel que l'utilisateur ANALYZE TABLE ;
Op : indique l'opération effectuée.
Msg_type : type d'informations, y compris l'état, les informations, la note, l'avertissement, l'erreur.query_cache_size et query_cache_type : le premier est la taille du tampon de requête, le second est le commutateur du paramètre précédent, 0 signifie ne pas utiliser le tampon, 1 signifie utiliser le tampon, mais vous pouvez utiliser SQL_NO_CACHE dans la requête pour signifier ne pas utiliser le tampon, 2 signifie Utiliser le tampon uniquement s'il est clairement indiqué dans la requête, c'est-à-dire SQL_CACHE.
sort_buffer_size : Tampon de tri
Portail :Plus de paramètres
2.2.3 Sous-base de données et sous-table
La pression de la base de données étant trop élevée, le premier problème est que les performances du système peuvent être réduites pendant les périodes de pointe, car une base de données excessive la charge aura un impact sur les performances. Autre question, que devez-vous faire si votre base de données plante à cause d’une pression excessive ? Ainsi, à ce stade, vous devez diviser le système en bases de données et tables + séparation lecture-écriture, c'est-à-dire diviser une base de données en plusieurs bases de données, les déployer sur plusieurs services de base de données, puis servir de base de données principale pour gérer les demandes d'écriture. Ensuite, chaque bibliothèque maître monte au moins une bibliothèque esclave, et la bibliothèque esclave gère les demandes de lecture.
2.2.4 Cluster de cache
Si le nombre d'utilisateurs devient de plus en plus grand, vous pouvez continuer à ajouter des machines à ce moment, par exemple, à au niveau du système. En ajoutant plus de machines, vous pouvez gérer des demandes simultanées plus élevées. Ensuite, si la concurrence d'écriture au niveau de la base de données devient de plus en plus élevée, le serveur de base de données sera étendu et la machine sera étendue via le partitionnement de sous-bases de données et de tables. Si la concurrence de lecture au niveau de la base de données devient de plus en plus élevée, la capacité. sera étendu et davantage de bases de données esclaves seront ajoutées. Mais il y a ici un gros problème : la base de données elle-même n'est pas réellement utilisée pour traiter un nombre élevé de requêtes simultanées. Par conséquent, d'une manière générale, la concurrence portée par une seule machine de base de données par seconde est de l'ordre de milliers, et les machines utilisées par la base de données sont de l'ordre de plusieurs milliers. configuration relativement élevée, machines relativement chères, le coût est très élevé. Si vous continuez simplement à ajouter des machines, c’est en réalité une erreur. Par conséquent, le cache est généralement inclus dans les architectures à haute concurrence. Le système de cache est conçu pour supporter une haute concurrence. Par conséquent, la quantité de concurrence transportée par une seule machine est de plusieurs dizaines de milliers, voire centaines de milliers par seconde, et la capacité de charge d'une concurrence élevée est d'un à deux ordres de grandeur supérieure à celle d'un système de base de données. Par conséquent, vous pouvez introduire complètement un cluster de cache pour les requêtes qui nécessitent moins d'écriture et plus de lecture en fonction des caractéristiques métier du système. Plus précisément, lors de l'écriture dans la base de données, une copie des données est écrite simultanément dans le cluster de cache, puis le cluster de cache est utilisé pour transporter la plupart des requêtes de lecture. Dans ce cas, grâce au clustering de cache, moins de ressources machine peuvent être utilisées pour héberger une concurrence plus élevée.
Conclusion
Une architecture système complète et complexe à haute concurrence comprendra certainement : divers systèmes d'infrastructure complexes auto-développés. Toutes sortes de conceptions architecturales exquises. Par conséquent, un petit article peut tout au plus avoir pour effet d'inspirer les autres, mais c'est tout pour les idées d'optimisation de base de données.
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!