MySQL lequel choisir entre Innodb et Myisam

Table des matières

Le moteur de stockage est responsable du stockage, de la gestion et de la récupération des informations d'une table. Les moteurs les plus connus sont MyISAM et InnoDB. Le choix de l'un ou de l'autre dépendra beaucoup du scénario où il est appliqué.
Le choix est destiné à atteindre le meilleur rapport qualité conformément à notre application. Si nous avons besoin de transactions, de clés étrangères et de serrures, nous devrons choisir InnoDB. Au contraire, nous choisirons MyISAM dans les cas où les requêtes SELECT vers la base de données prédominent.
InnoDB fournit à MySQL un moteur de stockage transactionnel (compatible ACID) avec des capacités de validation, de restauration et de récupération après incident. InnoDB effectue des verrous au niveau des lignes et fournit également des fonctions de lecture cohérentes non verrouillables de style Oracle sur les instructions SELECT. Ces fonctionnalités augmentent les performances et la capacité de gérer plusieurs utilisateurs simultanés. Un verrou mis à l'échelle n'est pas requis dans InnoDB car les verrous au niveau des lignes occupent très peu d'espace. InnoDB prend également en charge les contraintes FOREIGN KEY. Dans les requêtes SQL, même au sein d'une même requête, des tables de type InnoDB peuvent être librement incluses avec des tables d'autres types.
MyISAM est le moteur par défaut. Pour créer une table InnoDB, l'option ENGINE = InnoDB ou TYPE = InnoDB doit être spécifiée dans l'instruction SQL de création de table :
CREATE TABLE clients (a INT, b CHAR (20), INDEX (a)) ENGINE = InnoDB; CREATE TABLE clients (a INT, b CHAR (20), INDEX (a)) TYPE = InnoDB ;

Avantages d'utiliser InnoDB
Prise en charge des transactions
Verrouillage des enregistrements
Il nous permet d'avoir les caractéristiques ACID (Atomicité, Cohérence, Isolement et Durabilité : Atomicité, Cohérence, Isolement et Durabilité en espagnol), garantissant l'intégrité de nos planches.
Il est probable que si notre application utilise beaucoup INSERT et UPDATE, nous remarquerons une augmentation des performances par rapport à MyISAM.
Avantages d'utiliser MyISAM
Récupération de données globalement plus rapide.
Recommandé pour les applications qui dominent les instructions SELECT avant INSERT / UPDATE.
Absence de caractéristiques d'atomicité puisqu'il n'est pas nécessaire de faire des contrôles d'intégrité référentielle, ni de verrouiller les tables pour effectuer les opérations, cela nous conduit, comme les points précédents, à une vitesse plus élevée.
Le moteur de stockage (storage-engine) est responsable du stockage, de la gestion et de la récupération des informations d'une table. Les moteurs les plus connus sont MyISAM et InnoDB. Le choix de l'un ou de l'autre dépendra beaucoup du scénario où il est appliqué, mais arsys.es veut nous aider à mieux comprendre ces moteurs de stockage bien connus.
Le choix est destiné à atteindre le meilleur rapport qualité conformément à notre application. Si nous avons besoin de transactions, de clés étrangères et de serrures, nous devrons choisir InnoDB. Au contraire, nous choisirons MyISAM dans les cas où les requêtes SELECT vers la base de données prédominent.
InnoDB fournit à MySQL un moteur de stockage transactionnel (compatible ACID) avec des capacités de validation, de restauration et de récupération après incident. InnoDB effectue des verrous au niveau des lignes et fournit également des fonctions de lecture cohérentes non verrouillables de style Oracle sur les instructions SELECT. Ces fonctionnalités augmentent les performances et la capacité de gérer plusieurs utilisateurs simultanés. Un verrou mis à l'échelle n'est pas requis dans InnoDB car les verrous au niveau des lignes occupent très peu d'espace. InnoDB prend également en charge les contraintes FOREIGN KEY. Dans les requêtes SQL, même au sein d'une même requête, des tables de type InnoDB peuvent être librement incluses avec des tables d'autres types.
MyISAM est le moteur par défaut. Pour créer une table InnoDB, l'option ENGINE = InnoDB ou TYPE = InnoDB doit être spécifiée dans l'instruction SQL de création de table :
CREATE TABLE clients (a INT, b CHAR (20), INDEX (a)) ENGINE = InnoDB; CREATE TABLE clients (a INT, b CHAR (20), INDEX (a)) TYPE = InnoDB ;

Avantages d'utiliser InnoDB
Prise en charge des transactions, des procédures stockées, des triggers
Verrouillage des enregistrements
Il nous permet d'avoir les caractéristiques ACID (Atomicité, Cohérence, Isolement et Durabilité : Atomicité, Cohérence, Isolement et Durabilité en espagnol), garantissant l'intégrité de nos planches.
Il est probable que si notre application utilise beaucoup INSERT et UPDATE, nous remarquerons une augmentation des performances par rapport à MyISAM.
Avantages d'utiliser MyISAM
Récupération de données globalement plus rapide.
Recommandé pour les applications qui dominent les instructions SELECT avant INSERT / UPDATE.
Absence de caractéristiques d'atomicité puisqu'il n'est pas nécessaire de faire des contrôles d'intégrité référentielle, ni de verrouiller les tables pour effectuer les opérations, cela nous conduit, comme les points précédents, à une vitesse plus élevée.
Votre table va-t-elle recevoir INSERT, UPDATE et DELETE beaucoup plus longtemps qu'elle ne sera interrogée ?
Préférez-vous ou avez-vous besoin d'une conception de base de données relationnelle ?
Il est pratique d'utiliser InnoDB
Aurez-vous besoin de faire des recherches en texte intégral ?
L'espace disque ou la mémoire est-il un problème ?

Votre moteur doit être MyISAMAvez-vous aimé et aidé ce tutoriel ?Vous pouvez récompenser l'auteur en appuyant sur ce bouton pour lui donner un point positif

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave