J’ai regardé autour de moi et j’ai constaté que certains moteurs MySQL sont innodb et MyISAM. Peut-être qu’il y en a peu plus. Ma question est: quels sont ces moteurs de firebase database?
Quelles sont les différences entre les différents moteurs MySQL? Et plus important encore, comment décider lequel utiliser?
mysql> SHOW ENGINES; +------------+---------+----------------------------------------------------------------+--------------+------+------------+ | Engine | Support | Comment | Transactions | XA | Savepoints | +------------+---------+----------------------------------------------------------------+--------------+------+------------+ | InnoDB | YES | Supports transactions, row-level locking, and foreign keys | YES | YES | YES | | MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO | | BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO | | CSV | YES | CSV storage engine | NO | NO | NO | | MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO | | FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL | | ARCHIVE | YES | Archive storage engine | NO | NO | NO | | MyISAM | DEFAULT | Default engine as of MySQL 3.23 with great performance | NO | NO | NO | +------------+---------+----------------------------------------------------------------+--------------+------+------------+
Personnellement, j’utilise toujours InnoDB si je dois utiliser MySQL. Il prend en charge les clés de transaction et les clés étrangères, contrairement à MyISAM.
MyISAM et InnoDB sont les moteurs les plus utilisés.
MyISAM est légèrement plus rapide qu’InnoDB et implémente l’index FULLTEXT, qui est très utile pour intégrer les fonctionnalités de recherche. MyISAM n’est pas négocié et n’impose pas de contraintes de clé étrangère, ce qui constitue un inconvénient majeur.
Mais vous pouvez utiliser le meilleur des deux et créer des tables avec différents moteurs de stockage. Certains logiciels (WordPress, je pense) utilisent Inno pour la plupart des données, comme les relations entre les pages, les versions, etc. Les enregistrements pour les articles contiennent un identifiant qui renvoie à un enregistrement dans une table de contenu distincte utilisant MyISAM. Ainsi, le contenu est stocké dans la table qui offre les meilleures fonctionnalités de recherche, tandis que la plupart des autres données sont stockées dans des tables qui renforcent l’intégrité des données.
Si j’étais vous, je choisirais Inno, car c’est le plus fiable. N’utilisez MyISAM qu’à des fins spécifiques si vous en avez besoin.
Vous pouvez configurer votre firebase database pour utiliser InnoDB par défaut lors de la création de nouvelles tables.
Les moteurs de stockage sont des composants MySQL qui gèrent les opérations SQL pour différents types de tables. InnoDB est le moteur de stockage par défaut (pour v5.7) et le plus polyvalent. Les moteurs de stockage MySQL incluent à la fois ceux qui gèrent les tables sécurisées pour les transactions et ceux qui gèrent les tables non sécurisées .
Moteurs de stockage pris en charge par MySQL
InnoDB : InnoDB est un moteur de stockage sécurisé pour MySQL (compatible ACID), doté de fonctionnalités de validation, de restauration et de récupération en cas de panne pour protéger les données des utilisateurs. Le locking au niveau des lignes d’InnoDB (sans passage à des verrous de granularité plus grossiers) et des lectures non bloquantes cohérentes de type Oracle augmentent les performances et la concurrence simultanées. InnoDB stocke les données utilisateur dans des index clusterisés pour réduire les E / S des requêtes courantes basées sur les clés primaires. Pour maintenir l’intégrité des données, InnoDB prend également en charge les contraintes d’intégrité référentielle FOREIGN KEY. Pour plus d’informations sur InnoDB, voir le chapitre 14, Le moteur de stockage InnoDB.
MyISAM : Ces tables ont un faible encombrement. Le locking au niveau de la table limite les performances des charges de travail en lecture / écriture. Il est donc souvent utilisé dans des charges de travail en lecture seule ou en lecture seule dans les configurations Web et d’entreposage de données.
Mémoire : stocke toutes les données dans la RAM, pour un access rapide dans les environnements nécessitant une recherche rapide des données non critiques. Ce moteur était auparavant connu sous le nom de moteur HEAP. Ses cas d’utilisation diminuent; InnoDB, avec sa zone de mémoire tampon, offre un moyen général et durable de conserver la plupart ou la totalité des données en mémoire, et NDBCLUSTER fournit des recherches rapides de valeurs-clés pour d’énormes ensembles de données dissortingbués.
CSV : Ses tables sont vraiment des fichiers texte avec des valeurs séparées par des virgules. Les tables CSV vous permettent d’importer ou de vider des données au format CSV pour échanger des données avec des scripts et des applications qui lisent et écrivent le même format. Dans la mesure où les tables CSV ne sont pas indexées, vous conservez généralement les données dans les tables InnoDB pendant le fonctionnement normal et utilisez uniquement les tables CSV lors de l’importation ou de l’exportation.
Archive : ces tables compactes et non indexées sont destinées à stocker et à récupérer de grandes quantités d’informations historiques, archivées ou d’audit de sécurité rarement référencées.
Blackhole : Le moteur de stockage Blackhole accepte mais ne stocke pas de données, similaire au périphérique Unix / dev / null. Les requêtes retournent toujours un ensemble vide. Ces tables peuvent être utilisées dans les configurations de réplication où les instructions DML sont envoyées aux serveurs esclaves, mais le serveur maître ne conserve pas sa propre copie des données.
NDB (également appelé NDBCLUSTER): Ce moteur de firebase database en cluster est particulièrement adapté aux applications qui requièrent le plus haut degré de disponibilité et de disponibilité possible.
Fusionner : Permet à un administrateur de firebase database ou à un développeur MySQL de regrouper logiquement une série de tables MyISAM identiques et de les référencer comme un seul object. Bon pour les environnements VLDB tels que l’entreposage de données.
Fédéré : permet de relier des serveurs MySQL distincts pour créer une firebase database logique à partir de nombreux serveurs physiques. Très bon pour les environnements dissortingbués ou de data mart.
Exemple : Ce moteur sert d’exemple dans le code source MySQL qui illustre comment commencer à écrire de nouveaux moteurs de stockage. Cela intéresse principalement les développeurs. Le moteur de stockage est un «stub» qui ne fait rien. Vous pouvez créer des tables avec ce moteur, mais aucune donnée ne peut y être stockée ou extraite.
Vous n’êtes pas limité à utiliser le même moteur de stockage pour un serveur ou un schéma entier. Vous pouvez spécifier le moteur de stockage pour n’importe quelle table. Par exemple, une application peut utiliser principalement des tables InnoDB, avec une table CSV pour exporter des données dans une feuille de calcul et quelques tables MEMORY pour des espaces de travail temporaires.
Référence: 1 2
Différents moteurs de stockage disponibles, il y a peu de raisons de ne pas utiliser les types de moteur MyISAM ou InnoDB. MyISAM le fera dans la plupart des situations, mais si vous avez un nombre élevé de mises à jour ou d’insertions par rapport à vos recherches et à vos sélections, vous obtiendrez de meilleures performances avec le moteur InnoDB. Pour obtenir les meilleures performances d’InnoDB, vous devez modifier les parameters de votre serveur, sinon il n’y a aucune raison de ne pas l’utiliser.
Le moteur MERGE est un moyen extrêmement efficace d’interroger des données à partir de plusieurs tables définies de manière identique. Le moteur MEMORY est le meilleur moyen d’effectuer un grand nombre de requêtes complexes sur des données qui seraient inefficaces pour effectuer des recherches sur un moteur basé sur disque. Le moteur CSV est un excellent moyen d’exporter des données pouvant être utilisées dans d’autres applications. BDB est excellent pour les données dont la clé unique est fréquemment utilisée.
Un moteur de stockage est un module logiciel utilisé par un système de gestion de firebase database pour créer, lire et mettre à jour des données à partir d’une firebase database. Il existe deux types de moteurs de stockage dans MySQL: transactionnel et non transactionnel. Pour MySQL 5.5 et versions ultérieures, le moteur de stockage par défaut est InnoDB. Le moteur de stockage par défaut de MySQL avant la version 5.5 était MyISAM. Choisir le bon moteur de stockage est une décision stratégique importante qui aura un impact sur le développement futur. Dans ce tutoriel, nous utiliserons les moteurs de stockage MyISAM, InnoDB, Memory et CSV. Si vous êtes nouveau sur MySQL et que vous étudiez le système de gestion de firebase database MySQL, cela ne vous préoccupe pas beaucoup. Si vous planifiez une firebase database de production, les choses deviennent plus compliquées. Vous pouvez en lire plus ici: http://zetcode.com/databases/mysqltutorial/storageengines/
Peut-être vous obtiendrez plus d’informations ici: https://en.wikipedia.org/wiki/Database_engine
Un moteur de firebase database (ou moteur de stockage) est le composant logiciel sous-jacent qu’un système de gestion de firebase database (SGBD) utilise pour créer, lire, mettre à jour et supprimer (CRUD) des données à partir d’une firebase database. La plupart des systèmes de gestion de firebase database incluent leur propre interface de programmation d’application (API) qui permet à l’utilisateur d’interagir avec son moteur sous-jacent sans passer par l’interface utilisateur du SGBD.