Maison  >  Article  >  base de données  >  Explication détaillée du moteur de stockage de la base de données MySQL

Explication détaillée du moteur de stockage de la base de données MySQL

韦小宝
韦小宝original
2018-03-14 10:27:082039parcourir

Cet article parle du moteur de stockage de la base de données mysql, donc les étudiants qui ne connaissent pas grand-chose au moteur de stockage de la base de données mysql et à notre moteur devraient jeter un œil à cet article sur le moteur de stockage de base de données mysql !

Introduction à la structure d'optimisation :

Type Signification
Couche de stockage Moteur de stockage, sélection du type de champ, conception de paradigme
Couche de conception Index
类型 含义
存储层 存储引擎、字段类型选择、范式设计
设计层 索引、缓存、分区(分表)
架构 多个mysql服务器设置,读写分离(主从模式)
sql语句层 多个sql语句都可以达到目的的情况下,要选择性能高、速度快的sql语句
, cache, partition (table)
Architecture Couche Paramètres du serveur MySQL multiples,Lire -séparation d'écriture (mode maître-esclave)
Couche d'instructions SQL Lorsque plusieurs instructions SQL peuvent atteindre l'objectif, choisissez une instruction SQL rapide et hautes performances

Moteur de stockage

Moteur de stockage : Les données que nous utilisons sont stockées dans la base de données grâce à certaines technologies. Les données de la base de données sont stockées sur le disque dur sous forme de fichiers. Il existe plusieurs technologies, et chaque technologie a ses propres performances et fonctionnalités. La combinaison de la technologie et des fonctionnalités permettant de stocker des données est appelée « moteur de stockage ».

  • Moteurs de stockage fréquemment utilisés dans MySQL : Myisam ou Innodb et ainsi de suite.

  • Explication détaillée du moteur de stockage de la base de données MySQL

    Les données de la base de données sont stockées dans différents moteurs de stockage et toutes les fonctionnalités sont liées au moteur de stockage actuel. Différents moteurs de stockage doivent être sélectionnés en fonction des besoins et des caractéristiques du projet.

  • Afficher tous les moteurs de stockage pris en charge dans MySQL :
    Explication détaillée du moteur de stockage de la base de données MySQL

innodb

base de données Trois aspects des informations de conception de données pour chaque table de données : structure de la table, données, index

  • Caractéristiques techniques : prise en charge des transactions, verrouillage au niveau des lignes, clés étrangères

Explication détaillée du moteur de stockage de la base de données MySQL

Stockage physique de la structure des tables, des données et des index

  • Créer une table de données innodb :
    Explication détaillée du moteur de stockage de la base de données MySQL

  • Fichier de structure de table :

Explication détaillée du moteur de stockage de la base de données MySQL

Emplacement physique du fichier de ce type de données et index :

  • Les données et informations d'index de toutes les tables innodb sont stockées dans les fichiers ibdata1 suivants

Explication détaillée du moteur de stockage de la base de données MySQL

pour Tables de type innodb Les données et index créent leur propre espace de stockage correspondant :

  • Par défaut, les données et index de chaque table innodb ne créeront pas de stockage de fichiers séparé

Explication détaillée du moteur de stockage de la base de données MySQL

  • Définissez la variable de sorte que chaque table innodb ait des données et des fichiers de stockage d'index uniques :

Explication détaillée du moteur de stockage de la base de données MySQL

  • Recréez la table de données order2 :

Explication détaillée du moteur de stockage de la base de données MySQL

  • À l'heure actuelle, la table de données order2 contient des fichiers de stockage de données et d'index séparés :

Explication détaillée du moteur de stockage de la base de données MySQL

  • Peu importe comment l'état de configuration de innodb_file_per_table change plus tard, les données et l'index de order2 ont des emplacements de stockage indépendants

Ordre de stockage des données

  • Table Innodb les données sont stockées selon la clé primaire. Organisez chaque donnée écrite dans l'ordre.

Explication détaillée du moteur de stockage de la base de données MySQL

Cette fonctionnalité détermine que l'opération d'écriture de ce type de table est plus lente.

Transactions et clés étrangères

Ce type de table de données prend en charge les transactions et les clés étrangères

  • Transactions : http://blog.csdn.net/ change_any_time /article/details/79488020

Clé étrangère : deux tables de données A et B. La clé primaire de la table B est un champ ordinaire de la table A. Quand vous regardez ce champ ordinaire dans le tableau A, c'est La "clé étrangère" du tableau, l'utilisation de la clé étrangère a des "contraintes".
Contraintes : pour les deux tables ci-dessus, les données de la table B doivent être écrites en premier, puis les données de la table A, et la valeur de clé étrangère de la table A doit provenir de la valeur d'identifiant de clé primaire de la table B et ne peut pas dépasser sa plage. .

  • Les "clés étrangères" sont rarement utilisées dans les projets réels en raison de contraintes.

Concurrence

La concurrence de ce type de table est très élevée. Plusieurs personnes exploitent la table de données en même temps. Afin de faire fonctionner la table de données, le le contenu des données ne se produira pas au hasard. Les modifications nécessitent des informations de « verrouillage »
Le niveau de verrouillage de ce type est : verrouillage de ligne. Seul l'enregistrement en cours d'exploitation est verrouillé.

Myisam

La structure, les données et les index sont stockés indépendamment. Ce type de table de données dispose de fichiers de stockage indépendants pour la structure de la table, les données et les index :

  • <.>Créer une table de données Myisam


    Explication détaillée du moteur de stockage de la base de données MySQL

  • La structure, les données et l'index de chaque table de données myisam ont des fichiers de stockage indépendants


    Explication détaillée du moteur de stockage de la base de données MySQL

  • Type de fichier de table Signification
    *.frm Fichier de structure de table
    *.MYD Fichier de données de table
    *.MYI Fichier d'index de table
    表文件类型 含义
    *.frm 表结构文件
    *.MYD 表数据文件
    *.MYI

    表索引文件

    Caractéristiques : les fichiers de stockage indépendants peuvent être sauvegardés et restaurés séparément.

    Ordre de stockage des données

    • Le stockage des données de la table myisam consiste à organiser chaque donnée écrite dans l'ordre naturel.
      Explication détaillée du moteur de stockage de la base de données MySQL

      Cette fonctionnalité détermine que l'opération d'écriture de ce type de tableau est plus rapide.

    Concurrence

    Cette fonctionnalité détermine que l'opération d'écriture de ce type de table est plus rapide.

    Mécanisme de compression

    Si une table de données contient beaucoup de données, afin d'économiser de l'espace de stockage, la table doit être compressée.

    • Copier les données de la table de données actuelle :
      Explication détaillée du moteur de stockage de la base de données MySQL

    • La copie continue fait en sorte que les données de la table de données order3 deviennent plus de 2 millions d'articles :
      Explication détaillée du moteur de stockage de la base de données MySQL

    • La taille physique correspondante du fichier stockant les 2 millions d'informations est supérieure à 40 mégaoctets :
      Explication détaillée du moteur de stockage de la base de données MySQL

    Commencer à compresser les données de la table de données order3

    • Outil de compression : myisampack.exe Nom de la table
      Explication détaillée du moteur de stockage de la base de données MySQL

    • Reconstruire l'index : myisamchk.exe -rq nom de la table
      Explication détaillée du moteur de stockage de la base de données MySQL

    • Outil de décompression : myisamchk.exe –décompresser le nom de la table
      Explication détaillée du moteur de stockage de la base de données MySQL

    • 60% de l'espace où les informations de la table order3 sont compressées :
      Explication détaillée du moteur de stockage de la base de données MySQL

    • La commande3 la table de données est compressée, mais l'index a disparu :
      Explication détaillée du moteur de stockage de la base de données MySQL

    • Reconstruisez l'index :
      Explication détaillée du moteur de stockage de la base de données MySQL

    • L'index est bien reconstruit :
      Explication détaillée du moteur de stockage de la base de données MySQL

    • Rafraîchir la table de données : vider la table nom de la table
      Explication détaillée du moteur de stockage de la base de données MySQL

    • Occurrence : Le tableau de données compressées est un tableau en lecture seule, les informations ne peuvent pas être écrites :
      Explication détaillée du moteur de stockage de la base de données MySQL

    Les tableaux de données compressés ont des caractéristiques : les opérations d'écriture fréquentes ne sont pas possibles, mais les tableaux de données à contenu fixe peuvent être compressés, par exemple (Tableaux de données qui stockent des informations nationales et régionales, etc.)
    Si vous devez écrire des données : décompressez la table de données, écrivez les données, puis compressez

    • décompressez la table de données order3 pour qu'elle puisse écrire des données : (Décompressez et indexez simultanément Reconstruction automatique)
      Explication détaillée du moteur de stockage de la base de données MySQL

    • Décompression des données terminée :
      Explication détaillée du moteur de stockage de la base de données MySQL

    • Effectuer l'opération de vidage et mettre à jour le fichier décompressé. Données : flush table  表名 ; Cette opération supprimera également le fichier de sauvegarde compressé de order3.MYD.00996D46.deleted
      Explication détaillée du moteur de stockage de la base de données MySQL

    • Pour le moment, il est permis de continuer écriture des données sur commande3 :
      Explication détaillée du moteur de stockage de la base de données MySQL

    moteur de stockage innodb : adapté à la modification et à la suppression
    Moteur de stockage Myisam : adapté aux requêtes et à l'écriture

    Archive

    Moteur de stockage innodb : adapté à la modification et à la suppression
    Moteur de stockage Myisam : adapté à l'interrogation et à l'écriture de la

    mémoire

    moteur de stockage en mémoire. La vitesse de fonctionnement est très rapide et elle est plus adaptée au stockage d'informations temporaires. les données du moteur de stockage seront perdues immédiatement.

    Sélection du moteur de stockage

    Myisam et innodb

  1. Dans la plupart des cas, le site Web comporte de nombreuses opérations de "lecture et écriture", il convient donc de choisir le type Myisam (par exemple : dedecms , système de gestion de contenu phpcms (site d'actualités), forum discuz)

  2. Le site Web a certaines exigences en matière de logique métier (site Web de bureau, centre commercial), il convient pour choisir innodb (le moteur de stockage par défaut de Mysql5.5 est innodb)



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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn