编程知识 cdmana.com

Moteur de base de données InnoDB diffère de myisam

MySQLType de fiche technique pour :

MyISAMAvecInnoDBLa différence entre:

MyISAM- Oui.MySQLMoteur de base de données par défaut pour(5.5Avant la version).Bien que les performances soient excellentes,Et offre un grand nombre de fonctionnalités,Inclure l'index plein texte、Compression、Fonctions spatiales, etc.,Mais...MyISAMLes serrures de transaction et de ligne ne sont pas prises en charge,Et le plus gros défaut est qu'il ne peut pas être récupéré en toute sécurité après un crash.Mais,5.5Après la version,MySQLIntroduitInnoDB(Moteur de base de données transactionnelle),MySQL5.5Le moteur de stockage par défaut après la version estInnODB.

Nom MyISAM InnoDB
Traitement des choses Non pris en charge Soutien
Verrouillage de la ligne de données Non pris en charge Soutien
Contraintes des clés étrangères Non pris en charge Soutien
Index texte complet Soutien Non pris en charge
Taille de l'espace de table Plus petit Plus grande,Environ.2X

Comparaison des deux:

1.Le verrouillage au niveau de la ligne est - il pris en charge?:MyISAM Serrure de table seulement(table-level locking),EtInnoDBPrise en charge des serrures de niveau de ligne(row-level locking)Et serrures de niveau de compteur.Verrouillage par défaut au niveau de la ligne.
2.Si la transaction et la récupération de la sécurité après l'écrasement sont prises en charge: MyISAML'accent est mis sur la performance,Chaque requête est atomique.Sa mise en œuvre
Rapport de vitesseInnoDBType plus rapide,Mais pas de soutien transactionnel.MaisInnoDBFournir des services de soutien aux transactions,Fonctions avancées de base de données telles que les clés externes.Avec transaction(commit)、Retour en arrière(rollback)Et la capacité de réparation des pannes(crash recovery
capabilities)Sécurité des transactions(transaction-saie (ACID compliant))Tableau type.
3.Les clés étrangères sont - elles prises en charge?:MyISAMNon pris en charge,EtInnoDBSoutien.
4.Oui NonMVCC:SeulementInnoDBSoutien. Faire face à des transactions très simultanées ,MVCC Plus efficace que le simple verrouillage ;MVCCSeulement
InREAD COMMITTEDEtREPEATABLEREADTravailler sous deux niveaux d'isolement;MVCC L'optimisme peut être utilisé (optimistic) Verrouillage et pessimisme (pessimistic)Verrouillage pour réaliser; Dans chaque base de données MVCC La mise en oeuvre n'est pas uniforme .

 Occasions d'utilisation:

        Parfait.MyISAM: Économisez de l'espace et de la vitesse correspondante

        Parfait.InnoDB:Sécurité, Table de base de données pour le traitement des transactions et les opérations de l'utilisateur

<<MYSQLHaute performance>> C'est écrit :

 Ne croyez pas facilement "MyISAMQueInnoDBAllez" Des expériences comme ça , Cette conclusion n'est souvent pas absolue .
 Dans de nombreux scénarios connus ,InnoDB La vitesse de MyISAMC'est impossible.,
 En particulier, l'index groupé est utilisé , Ou des applications où les données auxquelles vous avez besoin d'accéder peuvent être mises en mémoire .

Emplacement de stockage de la Feuille de données :

MySQL Les fiches de données sont stockées sur disque sous forme de fichiers

      * Y compris les fichiers de table , Fichiers de données , Et le fichier options de la base de données

     *Emplacement : MysqlRépertoire d'installation\data\ Fiche technique de stockage ci - dessous , Le nom du Répertoire correspond au nom de la base de données , Le nom du fichier dans ce répertoire correspond à la table de données .

 InnoDB Il n'y a qu'une seule feuille de données de type *.frmDocumentation , Et du Répertoire précédent ibdata1Documentation

 MyISAM La fiche de données de type correspond à trois fichiers :

 * . frm —— Fichier de définition de la structure du tableau

 * .MYD——Fichiers de données ( data )

* . MYI -- Fichier index ( index )

版权声明
本文为[LongDi - IDEA]所创,转载请带上原文链接,感谢
https://cdmana.com/2021/10/20211013211842751d.html

Scroll to Top