Maison >base de données >tutoriel mysql >Quelles sont les différences entre les deux moteurs MySQL ?

Quelles sont les différences entre les deux moteurs MySQL ?

一个新手
一个新手original
2017-10-13 10:42:421844parcourir

Moteur Innodb

Le moteur Innodb prend en charge les transactions ACID de base de données et implémente quatre niveaux d'isolation de la norme SQL. Le moteur fournit également des verrous au niveau des lignes et des contraintes de clé étrangère. Son objectif de conception est de gérer des systèmes de bases de données de grande capacité. Il s'agit en fait d'un système de base de données complet basé sur le backend MySQL. Lorsque MySQL est en cours d'exécution, Innodb établira un pool de tampons. la mémoire pour les données et les index du tampon. Cependant, le moteur ne prend pas en charge les index de type FULLTEXT et n'enregistre pas le nombre de lignes dans la table. Lorsque SELECT COUNT(*) FROM TABLE, la table entière doit être analysée. Ce moteur est bien sûr le premier choix lorsqu'il est nécessaire de travailler avec des transactions de base de données. Étant donné que la granularité du verrouillage est plus petite, les opérations d'écriture ne verrouilleront pas la table entière. Ainsi, lorsque la concurrence est élevée, l'utilisation du moteur Innodb améliorera l'efficacité. Cependant, l'utilisation de verrous au niveau des lignes n'est pas absolue. Si MySQL ne peut pas déterminer la plage à analyser lors de l'exécution d'une instruction SQL, la table InnoDB verrouillera également la table entière.

Moteur MyIASM

MyIASM est le moteur par défaut de MySQL, mais il ne prend pas en charge les transactions de base de données, ni les verrous au niveau des lignes et les clés étrangères. Par conséquent, lorsque INSERT (insert. ) ou UPDATE (lors de la mise à jour), l'opération d'écriture doit verrouiller la table entière et l'efficacité sera moindre. Cependant, contrairement à Innodb, MyIASM stocke le nombre de lignes dans la table, donc lorsque SELECT COUNT(*) FROM TABLE, il vous suffit de lire directement les valeurs enregistrées sans effectuer une analyse complète de la table. Si la table comporte beaucoup plus d'opérations de lecture que d'opérations d'écriture et ne nécessite pas de prise en charge des transactions de base de données, alors MyIASM est également un bon choix.

Principales différences :

1. MyIASM n'est pas sécurisé sur le plan transactionnel, tandis qu'InnoDB est sécurisé sur le plan transactionnel

2. La granularité des verrous MyIASM est au niveau de la table, tandis qu'InnoDB prend en charge. rows Level lock

3. MyIASM prend en charge l'index de texte intégral, mais InnoDB ne prend pas en charge l'index de texte intégral

4 MyIASM est relativement simple et plus efficace qu'InnoDB. MyIASM

5. Les tables MyIASM sont enregistrées sous forme de fichier, ce qui est plus pratique pour une utilisation multiplateforme

Scénarios d'application :

1. , offrant un stockage et une récupération à grande vitesse ainsi que des capacités de recherche en texte intégral si vous effectuez un grand nombre d'opérations sélectionnées dans votre application, vous devez choisir MyIASM

2 est utilisé pour le traitement des transactions et possède. des fonctionnalités telles que la prise en charge des transactions ACID Si vous effectuez un grand nombre d'opérations d'insertion et de mise à jour dans votre application, vous devez choisir 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