Maison > Article > base de données > Partage très apprécié : idées d'optimisation MySQL adaptées à la production
Le point de départ de la rédaction de cet article est d'enregistrer mon expérience accumulée dans le traitement des données au travail, au fur et à mesure que j'écris, je constate que chaque point dérivera d'autres connaissances de base, comme la nécessité d'optimisation lors de l'optimisation. l'index. Avoir une certaine compréhension des requêtes lentes, Explain et autres fonctions associées. Par exemple, l'introduction d'Elasticsearch nécessite de résoudre la synchronisation des données, d'acquérir les connaissances d'Elasticsearch, etc. En raison de la longueur de l'article, il est impossible d'expliquer chaque point en détail. comme un didacticiel vidéo, je peux seulement résumer quelques points généraux basés sur mes connaissances limitées. Même ainsi, la longueur de l'article est déjà très longue. Si un certain point vous intéresse, veuillez vous rendre sur Baidu/Google pour une connaissance approfondie de certains détails.
L’article est assez long, donc si vous êtes intéressé, vous voudrez peut-être le lire entièrement. J’espère que vous n’avez pas perdu des dizaines de minutes. [Apprentissage recommandé : "Tutoriel vidéo mysql"]
La technologie des bases de données est jusqu'à présent passée par l'étape de gestion manuelle, l'étape du système de fichiers et l'étape du système de base de données.
Au début, lorsqu'il n'y avait pas de système logiciel, il était possible de gérer une certaine entreprise dans le monde réel grâce à l'étape de gestion manuelle de la comptabilité manuelle et de l'accord verbal. Ce formulaire existe depuis longtemps et est relativement inefficace. solution. . Dans l'étape suivante, avec le développement de la technologie informatique, il y a eu une étape de système de fichiers qui a remplacé la comptabilité manuelle par des tableaux Excel, ce qui a amélioré dans une certaine mesure la productivité. Au stade du système logiciel, qui est un système de base de données avec un fonctionnement simple et une efficacité élevée, la productivité a encore été améliorée, les problèmes spécifiques du monde réel sont résumés en données et les activités du monde réel sont représentées à travers le flux et la modification des données. Dans les systèmes logiciels, le stockage de données est généralement composé d'une base de données relationnelle et de plusieurs bases de données non relationnelles.
La base de données est fortement liée à l'activité du système. Cela nécessite que le chef de produit comprenne le processus de stockage et d'interrogation des données lors de la conception de l'entreprise, il est clair quel impact le changement commercial aura sur la base de données. et si de nouvelles références doivent être référencées. Par exemple, une entreprise conçue par le chef de produit consiste à effectuer une analyse statistique et un résumé des données sur plusieurs tables MySQL avec un volume de plusieurs millions de tables. Si une requête multi-tables MySQL est directement utilisée, des requêtes lentes se produiront certainement et provoqueront le msyql. le service doit baisser. Dans ce cas, la solution est soit de faire un compromis du côté du produit, soit de changer la pile technologique.
Dans l'architecture du système et la solution de base de données, nous devons choisir celle qui est la plus adaptée aux capacités de l'équipe de l'entreprise. Au début du système, une simple optimisation de la base de données avec des capacités de billets de banque sera la solution la plus rentable. Lorsque vous rencontrez la capacité des billets de banque de la base de données MySQL et que vous ne pouvez rien faire, l'introduction des services logiciels clés avec des fonctions de base deviendra la solution la plus rentable. Comment choisir la solution appropriée lorsque vous rencontrez des problèmes est le moment de refléter votre valeur.
Un pauvre garçon tombe amoureux d'une fille riche. La douceur à court terme n'est pas à la hauteur de la véritable inégalité de classe. La fin heureuse n'existe que dans le fantasme du pauvre garçon et dans la série télévisée du professeur Qiong Yao.
Comment améliorer les performances du stockage de données à un coût limité est l'idée centrale de cet article.
Je pense que tout le monde entrera souvent en contact avec le contenu suivant dans son travail quotidien. Permettez-moi de le résumer brièvement.
La base de données relationnelle est une organisation de données composée de tables bidimensionnelles et des connexions entre elles. Elle fournit des fonctions telles que la cohérence des données de transaction et la persistance des données pour le logiciel et constitue le stockage de base du système logiciel. Les services sont les bases de données avec lesquelles nous sommes le plus souvent en contact lors du développement et des entretiens. Pour certains petits projets d'externalisation, un MySQL suffit à répondre à tous les besoins de l'entreprise. C'est quelque chose avec lequel nous sommes souvent en contact, et qui regorge en fait de secrets. Nous discuterons des secrets en détail dans les chapitres suivants.
Avantages :
Problèmes
En tant que logiciel de stockage de données relationnelles, la base de données MySQL présente des avantages et des inconvénients évidents, donc la quantité de données dans le logiciel Le système est généralement en constante augmentation.Lorsque l'expansion et la complexité de l'entreprise continuent d'augmenter, nous ne pouvons pas espérer résoudre tous les problèmes en améliorant les capacités de la base de données MySQL. Au lieu de cela, nous devons introduire d'autres logiciels de stockage et utiliser divers types de NoSQL pour résoudre le problème continu. expansion du volume de données du système logiciel et de la complexité de l'entreprise. Il n'y a aucun problème de promotion.
La base de données relationnelle est une optimisation de la base de données relationnelle dans différents scénarios. Cela ne signifie pas que tout ira bien si vous introduisez une sorte de NoSQL. Cela signifie que vous devez bien comprendre les types et les difficultés d'application de NoSQL sur le marché et choisir le bon. un logiciel de stockage approprié dans le scénario approprié est la bonne chose à faire.
En entreprise, le contenu de certaines tables est souvent interrogé, mais la plupart des résultats de la requête sont inchangés, donc des valeurs-clés telles que Memcached et Redis ont émergé. Logiciel de stockage, module de cache. largement utilisé dans les systèmes. Redis a plus de structures de données et de persistance que Memcached, ce qui en fait le NoSQL de type KV le plus largement utilisé.
Dans le scénario de recherche en texte intégral, l'optimisation des requêtes de l'index arborescent MySQLB+, comme une requête ne peut pas atteindre l'index, est une analyse de table complète dans une table contenant des dizaines de milliers de données. Cela reste supportable, mais des requêtes lentes se produiront lorsque les données sont stockées. Si le code métier n'est pas bien écrit et qu'une requête Like est appelée dans une transaction, un verrou en lecture se produira. ElasticSearch, avec l'index inversé comme noyau, peut parfaitement répondre au scénario de recherche en texte intégral. Dans le même temps, ElasticSearch prend également en charge très bien les données massives, et la documentation et l'écologie sont également très bonnes.
Le type de document NoSql fait référence à un type de NoSql qui stocke des données semi-structurées sous forme de documents. Le type de document NoSql stocke généralement les données au format JSON ou XML, le type de document NoSql n'a donc pas de schéma en raison du. Grâce aux caractéristiques de Schema, nous pouvons stocker et lire des données à volonté. Par conséquent, l'émergence de NoSql basé sur des documents résout le problème de l'expansion gênante des structures de tables de bases de données relationnelles. L'auteur n'a jamais utilisé de
Pour les entreprises d'une certaine taille, les affaires impliquent souvent une synthèse de données flexible en temps réel. Ce type d'affaires ne peut pas être résolu par des solutions de pré-calcul, même si. Il peut L'entreprise a été écrite à l'aide d'un plan pour calculer et résumer à l'avance, mais à mesure que la quantité de données résumées augmente, l'étape finale d'accumulation des données résumées deviendra progressivement très lente. Le NoSql en colonnes est le produit de ce scénario. est l'une des technologies les plus représentatives de l'ère du big data. La plus courante est HBase, mais l'application de HBase est très lourde et nécessite souvent un ensemble complet d'écosystème Hadoop pour fonctionner. La société de l'auteur utilise AnalyticDB d'Alibaba Cloud. compatible avec les requêtes MySQL. Logiciel de stockage de colonnes pour les instructions. Les puissantes capacités de requête du logiciel de stockage de résumé + colonne sont suffisantes pour prendre en charge divers services de résumé de données flexibles en temps réel.
En prenant 2021 comme point temporel, la plupart des systèmes commencent avec le plan suivant dans les premières étapes. Ensuite, je ferai lentement quelques ajustements dans ce cas.
Les avantages apportés par les mises à niveau matérielles diminuent avec le temps. Il s'agit de la solution d'optimisation la plus rapide lorsque le temps et le personnel manquent. Les avantages apportés par l'optimisation logicielle sont plus élevés à l'avenir, mais le niveau de personnel technique requis est également plus élevé à l'avenir. Lorsque le temps et le personnel le permettent, il s'agit de la solution d'optimisation la plus rentable. L'optimisation matérielle et logicielle ne s'exclut pas mutuellement. Lorsque cela est nécessaire, les deux peuvent approcher la limite supérieure des performances MYSQL en même temps.
Phase 1
Phase deux
Phase trois
OLTP est principalement utilisé pour l'enregistrement Lorsqu'un certain type d'événement commercial se produit, tel que le comportement de l'utilisateur, lorsque le comportement se produit, le système enregistre quand et où l'utilisateur a fait quoi. ) des données seront ajoutées, supprimées et modifiées dans la base de données. L'opération de traitement de mise à jour nécessite des performances en temps réel élevées, une forte stabilité et garantit une mise à jour réussie des données en temps opportun. Les systèmes d'entreprise courants sont tous OLTP et les bases de données utilisées. sont des bases de données de transactions, telles que MySlq, Oracle, etc. Pour OLTP, l'amélioration de la vitesse des requêtes et la stabilité du service sont au cœur de l'optimisation
store_id_guide_id
(store_id,<code> guide_id
) EN UTILISANT BTREEstore_id_guide_id
(store_id
,guide_id
) USING BTREEstore_id_guide_id
(store_id
,guide_id
store_id_guide_id
( store_id,guide_id
) EN UTILISANT BTREEshow processlist;SELECT * FROM information_schema.INNODB_TRX; //长事务SELECT * FROM information_schema.INNODB_LOCKs; //查看锁SELECT * FROM information_schema.INNODB_LOCK_waits; //查看阻塞事务
Le logiciel dans chaque lien peut être remplacé par un logiciel avec la même fonction Si l'équipe est la plus confiante quant au plan de mise en œuvre du logiciel, alors le plan est OLAP.
Résumé
L'optimisation doit être terre-à-terre, avec une accumulation de capacités étape par étape, plusieurs séries d'itérations et ne peut pas être réalisée du jour au lendemain. Effectuez plusieurs séries d'itérations en fonction de vos propres bases, de vos scénarios commerciaux et de vos attentes de développement futur. Le principe de l'itération est d'améliorer d'abord l'efficacité d'un service logiciel unique grâce à une optimisation logicielle et une optimisation matérielle. Lorsque le coût d'optimisation est inférieur aux revenus, en fonction des attentes de développement futur, se référer aux solutions matures du marché et les introduire. selon les besoins en fonction de la solution. Lorsque vous utilisez un nouveau logiciel pour une innovation combinée, veillez à ne pas le copier aveuglément. Ce n'est que grâce à une intégration organique que vous pouvez obtenir les effets de 1+1>2, 2+1>3. un goulot d'étranglement, répétez ce processus.Merci d'avoir lu ceci. Ce qui précède est tout le contenu de l'article. Les points d'optimisation et les solutions proposées dans le contenu ne sont pas nécessairement les solutions optimales. Ce sont les meilleures pratiques en matière de travail personnel. sont invités à en discuter et à les échanger.
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!