Maison > Article > base de données > Une brève discussion sur l'histoire et l'architecture des principes et de l'optimisation de MySQL (1)
MySQL est actuellement le logiciel de base de données (SGBD) le plus utilisé parmi les sociétés Internet. Des entreprises aussi petites que BAT, GOOGLE et FACEBOOK utilisent toutes MySQL comme stockage de données dans leurs activités. Alibaba Cloud fournit également une version cloud de MySQL - Cloud Database RDS MySQL version. Cette série d'articles espère aider tout le monde à mieux comprendre MySQL, à mieux utiliser les performances de la base de données et à rendre notre stockage de données plus efficace.
Histoire de MySQL
MySQL est un logiciel libre open source, et on peut directement obtenir son code source en ligne. Jusqu'à présent, MySQL a une histoire de plus de 20 ans. Les étapes générales sont les suivantes :
● En 1996, MySQL 1.0 est sorti, qui n'était disponible que pour un petit groupe de personnes. En octobre 1996, MySQL 3.11.1 est sorti (MySQL n'a pas de version 2.x), et initialement seule une version binaire sous Solaris était fournie. Un mois plus tard, une version Linux est apparue. Au cours des deux années suivantes, MySQL a été porté tour à tour sur diverses plates-formes.
● De 1999 à 2000, MySQL AB a été créé en Suède et a développé le moteur Berkeley DB. Puisque BDB prend en charge le traitement des transactions, MySQL a commencé à prendre en charge le traitement des transactions à partir de ce moment-là.
● 2001 V3.23 : Moteur MyISAM, et prototype du moteur Innodb
● 2003 V4.0 : Nouvelles fonctionnalités de syntaxe, Innodb devient un composant standard, query_cache est ajouté
● V5.0 en 2006 : des vues, déclencheurs, procédures stockées et autres fonctions ont été ajoutés
● V5.1 en 2008 : Partitionnement, réplication de lignes
● V5.5 en 2010 : Innodb est devenu Moteur par défaut, réplication semi-synchrone
● V5.6 Améliorations d'Innodb, fonctions de réplication et autres améliorations
● La V5.7 ajoute de nouveaux moteurs de stockage tels que mariaDB
MySQL L'architecture du système
MySQL n'est pas la même que la base de données de la même période, mais adopte sa propre architecture unique. Nous pouvons comprendre cette structure avec un célèbre poème du poète de la dynastie Tang Du Mu :
长安回望绣成堆,山顶千门次第开。 一骑红尘妃子笑,无人知是荔枝来。
Il y a trois rôles dedans :
● Concubine : Chargé de faire les demandes de litchis
● Ministre : Chargé d'organiser la cueillette des litchis, le chemin à suivre, la délivrance des documents officiels, etc.
Quantity Courrier : Responsable de la livraison des litchis
Cela correspond aux trois rôles dans l'architecture MySQL : client, moteur de traitement, moteur d'exécution
Utiliser le schéma d'architecture pour l'exprimer c'est comme ça
● Client
Le rôle équivalent à la concubine : fonctionnement utilisateur Le client émet des demandes d'interrogation, de modification, d'ajout et de suppression de données
● Moteur de traitement
Le moteur de traitement est équivalent au rôle d'un ministre, responsable de l'analyse des instructions SQL et de la génération du plan d'exécution. De plus, il est également responsable des responsabilités suivantes, auxquelles nous pouvons prêter attention lors de l'optimisation :
• Responsable de la gestion des connexions et des threads : en utilisant un modèle multithread, la configuration de thread_cache_size peut utiliser les threads existants
• Responsable de la gestion du cache des requêtes : utilisez des résultats prêts à l'emploi pour mettre directement en cache l'ensemble de résultats. Lors du test des performances de l'instruction, vous devez utiliser l'indice sql_no_cache pour protéger
● Moteur de stockage
Le moteur de stockage équivaut à une livraison express. Le rôle de l'administrateur est responsable du stockage proprement dit des données ainsi que de la lecture, de la modification et d'autres opérations des données. Différents moteurs de stockage présenteront des caractéristiques différentes lors de l'exécution réelle. Ceci sera présenté en détail dans un article ultérieur. Pour résumer, ceci est un aperçu de l'architecture MySQL, j'espère qu'il sera utile à tout le monde.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!