Maison > Article > base de données > Qu'est-ce que MySQL
MySQL est un système de gestion de bases de données relationnelles (SGBDR) open source qui utilise le langage de gestion de bases de données le plus couramment utilisé : le langage de requête structuré (SQL) pour la gestion de bases de données.
MySQL est open source, tout le monde peut donc le télécharger et le modifier selon ses besoins personnels sous la Licence Publique Générale.
MySQL a attiré beaucoup d'attention en raison de sa rapidité, de sa fiabilité et de son adaptabilité. La plupart des gens conviennent que MySQL est le meilleur choix pour gérer du contenu sans traitement transactionnel.
Tutoriels recommandés : Tutoriel vidéo d'introduction à MySQL
Introduction à MySQL
MySQL est un système de gestion de base de données relationnelle (SGBDR) open source. Le système de base de données MySQL utilise le langage de gestion de base de données le plus couramment utilisé - le langage de requête structuré (SQL) pour la gestion de bases de données.
MySQL étant open source, n'importe qui peut le télécharger sous Licence Publique Générale et le modifier selon ses besoins personnalisés. MySQL a attiré beaucoup d'attention en raison de sa rapidité, de sa fiabilité et de son adaptabilité. La plupart des gens conviennent que MySQL est le meilleur choix pour gérer du contenu sans traitement transactionnel.
L'origine du nom MySQL n'est pas très claire. Une déclaration plus influente est que les guides de base et un grand nombre de bibliothèques et d'outils portent le préfixe « my » depuis plus de 10 ans, et de toute façon, la fille de Monty Widenius, l'un des fondateurs de MySQL AB, s'appelle également My. . Lequel de ces deux noms a donné le nom MySQL reste un mystère, y compris pour les développeurs.
Le nom du logo du dauphin de MySQL est "sakila", qui a été sélectionné par les fondateurs de MySQL AB parmi une grande liste de noms suggérés par les utilisateurs dans le cadre du concours "Dolphin Naming". Le nom gagnant a été fourni par Ambrose Twebaze, un développeur de logiciels open source du Swaziland, en Afrique. Selon Ambrose, Sakila vient d'un dialecte swazi appelé SiSwati et est également le nom d'une petite ville d'Arusha, en Tanzanie, près de la ville natale d'Ambrose, en Ouganda.
Bien que MySQL ne soit peut-être pas très puissant, de nombreuses personnes ont découvert cette base de données en raison de son open source et de sa large diffusion. Son histoire est également légendaire.
Optimisation de la base de données
Sélectionnez InnoDB comme moteur de stockage
Base de données pour les grandes produits Pour des exigences élevées de fiabilité et de concurrence, InnoDB, en tant que moteur de stockage MySQL par défaut, est un meilleur choix que MyISAM.
Optimisez la structure de la base de données
Organisez le schéma, les tables et les champs de la base de données pour réduire les frais d'E/S, enregistrez les éléments associés ensemble et planifiez à l'avance pour faciliter accès à tout moment À mesure que la quantité de données augmente, les performances peuvent rester à un niveau élevé.
La table de données doit être conçue pour minimiser l'espace qu'elle occupe, et la clé primaire de la table doit être aussi courte que possible. ·Pour les tables InnoDB, la colonne où se trouve la clé primaire est réplicable dans chaque entrée d'index secondaire, donc s'il existe de nombreux index secondaires, une clé primaire courte peut économiser beaucoup d'espace.
Créez uniquement les index dont vous avez besoin pour améliorer les performances des requêtes. Les index facilitent la récupération, mais augmentent le temps d'exécution des opérations d'insertion et de mise à jour.
Fonctionnalité ChangeBuffering d'InnoDB
InnoDB fournit une configuration de tampon de modification pour réduire les E/S disque requises pour maintenir les index auxiliaires. Les bases de données à grande échelle peuvent subir un grand nombre d'opérations sur les tables et des E/S lourdes pour maintenir les index secondaires à jour. Lorsque la page concernée ne se trouve pas dans le pool de tampons, le changebuffer d'InnoDB mettra en cache les modifications apportées à l'entrée d'index secondaire, évitant ainsi les opérations d'E/S fastidieuses causées par l'impossibilité de lire immédiatement la page à partir du disque. Lorsque les pages sont chargées dans le pool de mémoire tampon, les modifications mises en mémoire tampon sont fusionnées et les pages mises à jour sont ensuite vidées sur le disque. Cela améliore les performances et est disponible pour MySQL 5.5 et versions ultérieures.
Compression de pages InnoDB
InnoDB prend en charge la compression des tables au niveau de la page. Lorsqu'une page de données est écrite, un algorithme de compression spécifique est utilisé pour la compresser. Les données compressées sont écrites sur le disque avec un mécanisme de perforation qui libère des blocs vides à la fin de la page. Si la compression échoue, les données sont écrites sans modification. Les tables et les index sont compressés car les index représentent généralement une grande partie de la taille totale de la base de données. La compression peut économiser considérablement de la mémoire, des E/S ou du temps de traitement, atteignant ainsi l'objectif d'amélioration des performances et de l'évolutivité. Cela réduit également la quantité de données transférées entre la mémoire et le disque. MySQL5.1 et les versions ultérieures prennent en charge cette fonctionnalité.
Notez que la compression de page ne prend pas en charge les tables dans les espaces de tables partagés. Les espaces table partagés comprennent les espaces table système, les espaces table temporaires et les espaces table standard.
Utiliser l'importation de données en masse
L'utilisation de sources de données triées sur des clés primaires pour importer des données par lots peut accélérer le processus d'insertion de données. Sinon, il faudra peut-être insérer des lignes entre d'autres lignes pour conserver l'ordre, ce qui peut entraîner des E/S de disque élevées, avoir un impact sur les performances et augmenter le fractionnement des pages. Il est également avantageux de désactiver le mode de validation automatique, car il effectuera un vidage du journal sur le disque pour chaque insertion. Le déplacement temporaire des contrôles de clé unique et de clé étrangère lors des insertions groupées peut également réduire considérablement les E/S disque. Pour les tables nouvellement créées, la meilleure pratique consiste à créer des contraintes de clé étrangère/clé unique après l’importation groupée.
Une fois que vos données atteignent une taille stable ou qu'une table en croissance ajoute des dizaines ou des centaines de mégaoctets, vous devriez envisager d'utiliser l'instruction OPTIMIZETABLE pour réorganiser la table et compresser l'espace gaspillé. Une analyse complète de la table réorganisée nécessitera moins d’E/S.
Optimiser les E/S du disque InnoDB
L'augmentation de la taille du pool de tampons InnoDB permet d'accéder aux requêtes à partir du pool de tampons plutôt que via les E/S du disque. Ajustez l'indicateur d'effacement du tampon pour atteindre le niveau optimal en ajustant la variable système innodb_flush_method.
Allocation de mémoire MySQL
Avant d'allouer suffisamment de mémoire pour MySQL, veuillez tenir compte des besoins en mémoire pour MySQL dans différents domaines. Les domaines clés à prendre en compte sont les suivants : Connexions simultanées - Avec un grand nombre de connexions simultanées, le tri et les tables temporaires nécessiteront beaucoup de mémoire. Au moment de la rédaction de cet article, 16 Go à 32 Go de RAM suffisent pour une base de données gérant plus de 3 000 connexions simultanées.
La fragmentation de la mémoire peut consommer environ 10 % ou plus de la mémoire. Les caches et tampons comme innodb_buffer_pool_size, key_buffer_size, query_cache_size, etc. consomment environ 80 % de la mémoire allouée.
Maintenance quotidienne
Vérifiez régulièrement les journaux de requêtes lentes et optimisez le mécanisme de requête pour utiliser efficacement le cache afin de réduire les E/S disque. Optimisez-les pour analyser le nombre minimum de lignes plutôt que d'effectuer une analyse complète de la table.
Les autres journaux qui peuvent aider les administrateurs de base de données à vérifier et analyser les performances incluent : les journaux d'erreurs, les journaux de requêtes générales, les journaux binaires et les journaux DDL (journaux de métadonnées).
Videz régulièrement les caches et les tampons pour réduire la fragmentation. Utilisez l'instruction OPTIMIZETABLE pour réorganiser la table et compresser tout espace potentiellement gaspillé. [1]
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!