当前位置:网站首页>Moteur de stockage mysql23

Moteur de stockage mysql23

2022-07-06 10:33:00 Protégez - nous, Yao.

Un.. Voir le moteur de stockage

  • VoirmysqlQuels moteurs de stockage sont disponibles:
show engines;

Insérer la description de l'image ici

show engines \G;

Insérer la description de l'image ici
Insérer la description de l'image ici

2.. Définir le moteur de stockage par défaut du système

  • Voir le moteur de stockage par défaut:
show variables like '%storage_engine%';
#Ou
SELECT @@default_storage_engine;

Insérer la description de l'image iciInsérer la description de l'image ici

  • Modifier le moteur de stockage par défaut
    Si le moteur de stockage de la table n'est pas explicitement spécifié dans l'instruction créer la table , Il sera utilisé par défaut InnoDB Moteur de stockage comme table. Si nous voulons changer le moteur de stockage par défaut pour les tables , Vous pouvez écrire la ligne de commande pour démarrer le serveur .
SET DEFAULT_STORAGE_ENGINE=MyISAM;

Ou modifier my.cnf Documentation:

default-storage-engine=MyISAM
# Redémarrer le Service
systemctl restart mysqld.service

Trois. Définir le moteur de stockage de la table

Le moteur de stockage est responsable de l'extraction et de l'écriture des données dans les tableaux ,On peut faire ça pour Différents paramètres de table différents moteurs de stockage ,Cela signifie que différentes tables peuvent avoir des structures de stockage physiques différentes,Différentes méthodes d'extraction et d'écriture.

3.1. Spécifiez le moteur de stockage lors de la création de la table

Aucune de nos déclarations précédentes qui ont créé la table n'a spécifié le moteur de stockage de la table , Le moteur de stockage par défaut sera utilisé InnoDB . Si nous voulons spécifier explicitement le moteur de stockage de la table , Ça pourrait être écrit :

CREATE TABLE Nom du tableau(
Déclaration de création de table;
) ENGINE = Nom du moteur de stockage;

3.2. Modifier le moteur de stockage de la table

Si la table a été construite , Nous pouvons également utiliser cette instruction ci - dessous pour modifier le moteur de stockage de la table :

ALTER TABLE Nom du tableau ENGINE = Nom du moteur de stockage;
create table engine_demo_table(
     c1 int primary key,
     c2 varchar(25));
     
show create table engine_demo_table; 
alter table engin_demo_table engine=MYISAM;
show create table engine_demo_table; 

Insérer la description de l'image ici

Quatre. Introduction au moteur

4.1. InnoDB Moteur:Moteur de stockage des transactions avec prise en charge des clés étrangères

  1. MySQLDe3.23.34a Commencez par inclure InnoDBMoteur de stockage. Supérieur ou égal à5.5Après,Par défautInnoDBMoteur .
  2. InnoDB- Oui.MySQLDe Moteur transactionnel par défaut ,Il est conçu pour faire face à une grande quantité de court terme(short-lived)Services. Pour s'assurer que la transaction est entièrement engagée (Commit)Et rollback(Rollback).
  3. En plus des ajouts et des requêtes,Des mises à jour sont également nécessaires、Supprimer l'action,Alors,Priorité à choisirInnoDBMoteur de stockage.
  4. .À moins qu'il n'y ait une raison très particulière d'utiliser un autre moteur de stockage,Sinon, la priorité devrait être accordée àInnoDBMoteur.
  5. Structure du fichier de données:
  • Nom du tableau.frm Structure de la table de stockage(MySQL8.0Heure,Fusionner dans le nom de la table.ibdMoyenne).
  • Nom du tableau.ibd Stockage des données et des index.
  1. InnoDB- Oui. Conçu pour une performance maximale avec une grande quantité de données .
  • Dans les versions précédentes,Données du dictionnaire dans un fichier de métadonnées、Tableaux non transactionnels, etc. pour le stockage.Ces fichiers de métadonnées ont été supprimés.Par exemple,: .frm , .par , .trn , .isl , .db.opt Tout le monde attendMySQL8.0Il n'existe plus.
  1. ComparerMyISAMMoteur de stockage pour, InnoDBL'efficacité du traitement de l'écriture est plus faible ,Et prend plus d'espace disque pour enregistrer les données et les index.
  2. MyISAMIndex de cache seulement,Ne pas mettre en cache les données réelles;InnoDBMettre en cache non seulement les index, mais aussi les données réelles, Exigences élevées en matière de mémoire ,Et la taille de la mémoire a un impact décisif sur les performances.

4.2. MyISAM Moteur:Principaux moteurs de stockage non transactionnels

  1. MyISAMOffre un grand nombre de fonctionnalités,Inclure l'index plein texte、Compression、Fonctions spatiales(GIS)Attendez.,Mais...MyISAM Transaction non prise en charge、Verrouillage des rangées、Clé étrangère , Il y a un défaut indiscutable Impossible de récupérer en toute sécurité après un crash .
  2. 5.5Moteur de stockage par défaut précédent.
  3. Les avantages sont accessibles Vite! ,Aucune exigence d'intégrité transactionnelle ouSELECT、INSERTApplication principale.
  4. Il existe un stockage constant supplémentaire pour les statistiques de données.Donc count(*) Très efficace dans la recherche de.
  5. Structure du fichier de données:
  • Nom du tableau.frm Structure de la table de stockage.
  • Nom du tableau.MYD Stockage des données (MYData).
  • Nom du tableau.MYI Index de stockage (MYIndex).
  1. Scénario d'application:Applications en lecture seule ou entreprises axées sur la lecture.

4.3. Archive Moteur:Pour l'archivage des données

  • Le tableau suivant montreARCHIVE Fonctions du moteur de stockage
CaractéristiquesSoutien
BIndex des arbresNon pris en charge
Sauvegarde/Récupération ponctuelle ( Implémenter sur le serveur ,Pas dans un moteur de stockage)Soutien
Prise en charge des bases de données groupées Non pris en charge
Index groupéNon pris en charge
Données compresséesSoutien
Cache de donnéesNon pris en charge
Chiffrer les données( La fonction de chiffrement est implémentée dans le serveur )Soutien
Prise en charge des clés étrangèresNon pris en charge
Index de recherche en texte intégral Non pris en charge
Prise en charge des types de données géospatiales Soutien
Prise en charge des index géospatiaux Non pris en charge
Index de hachageNon pris en charge
Cache d'indexNon pris en charge
Granulométrie de verrouillageVerrouillage des rangées
MVCCNon pris en charge
Limites de stockageIl n'y a pas de limite
CommerceNon pris en charge
Mise à jour des statistiques du dictionnaire de données Soutien

4.4. Blackhole Moteur:Jeter l'écriture,L'opération de lecture renvoie un contenu vide

4.5. CSV Moteur:Lors du stockage des données,Séparer les éléments de données par des virgules

Les cas d'utilisation sont les suivants

create table testcsv (
    i int not null,
    c char(10) not null) engine=CSV;
INSERT INTO testcsv VALUES(1,'record one'),(2,'record two');
select * from testcsv;

Insérer la description de l'image ici

cd /var/lib/mysql
cd MYSQLTEST/

Insérer la description de l'image ici

4.6. Memory Moteur:Table en mémoire

Généralités:
Memory Le support logique utilisé est Mémoire , Réponse rapide ,Mais quandmysqld Quand le démon s'écrase Les données seront perdues .En plus, Les données devant être stockées sont dans un format dont la longueur des données est constante ,Par exemple,,BlobEtText Données de type non disponibles ( Longueur non fixée ).
Principales caractéristiques:

  1. MemoryEn même temps Prise en charge du hachage(HASH)Index Et B+Index des arbres .
  2. MemoryLe tableau est au moins plusMyISAM Table Un ordre de grandeur. .
  3. MEMORY La taille du tableau est limitée De. La taille du tableau dépend principalement de deux paramètres ,Respectivement. max_rows Etmax_heap_table_size .Parmi eux,max_rowsVous pouvez spécifier;max_heap_table_sizeLa taille par défaut est16MB, Peut être agrandi au besoin .
  4. Les fichiers de données sont stockés séparément des fichiers index .
  5. Inconvénients: Ses données sont facilement perdues ,Cycle de vie court. Sur la base de ce défaut ,SélectionnerMEMORY Attention particulière lors du stockage du moteur .
    UtiliserMemory Scénario du moteur de stockage :
  6. Les données cibles sont relativement petites ,Et très Accès fréquent ,Stocker les données en mémoire, Si trop de données peuvent causer Débordement de mémoire .Vous pouvez passer par les paramètres max_heap_table_size ContrôleMemoryTaille du tableau,RestrictionsMemory Taille maximale du tableau .
  7. Si Les données sont provisoires ,Et Doit être disponible immédiatement Je l'ai., Alors on peut le mettre en mémoire .
  8. Stocké dansMemory Les données du tableau si soudainement Ça n'a pas beaucoup d'importance de perdre .

4.7. Federated Moteur:Accès aux tables distantes

FederatedLe moteur est d'accéder à d'autresMySQLUn serveur Agents , Bien que le moteur semble offrir un bon Flexibilité entre serveurs ,Mais ça pose souvent des problèmes,Donc, La valeur par défaut est désactivée .

4.8. MergeMoteur:Gérer plusieursMyISAMEnsemble de tableaux composés de tableaux

4.9.NDBMoteur:MySQLMoteur de stockage dédié au cluster

Aussi appelé NDB Cluster Moteur de stockage,Principalement utilisé pour MySQL Cluster Grappe distribuée Environnement,Similaire à Oracle De RAC Cluster.

4.10. Comparaison des moteurs

MySQLMême base de données, Différentes tables peuvent choisir différents moteurs de stockage . Le tableau suivant compare les moteurs de stockage communs .

原网站

版权声明
本文为[Protégez - nous, Yao.]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/187/202207060911326073.html