InnoDB
Le InnoDB est un moteur de stockage de pour le MySQL , inclus en tant que norme dans toutes les binaires courantes distribuées par le MySQL ab . Son perfectionnement principal au-dessus d'autres moteurs de stockage disponibles pour l'usage avec MySQL est l'ACIDE - appui conforme de de la transaction , semblable au PostgreSQL , avec l'intégrité référentielle déclarative (appui principal étranger).
InnoDB est devenu un produit de Oracle Corporation après leur acquisition de Innobase Oy , en octobre 2005. Le logiciel est le autorisé duel. Il est distribué sous le permis de grand public de GNU de , mais peut également être autorisé aux parties souhaitant combiner InnoDB dans le logiciel de propriété industrielle . ==Comparison avec MyISAM== Le MyISAM est le moteur alternatif habituel et les propriétés suivantes sont une partie qui distinguent les deux : InnoDB récupère d'un accident ou de tout autre arrêt inattendu en rejouant ses notations. MyISAM doit entièrement balayer et réparer ou reconstruire tous les index ou probablement tables qui avaient été mis à jour mais pas entièrement rincés au disque. Puisque l'approche d'InnoDB est temps approximativement fixe tandis que le temps de MyISAM se développe avec la taille des fichiers de données, InnoDB offre une plus grandes disponibilité et fiabilité perçues pendant que les tailles de base de données se développent.
MyISAM se fonde sur le du système d'exploitation pour cacher lit et écrit aux rangées de données tandis qu'InnoDB fait ceci dans le moteur lui-même, combinant les cachettes de rangée avec les cachettes d'index. Des pages (changées) sales de base de données ne sont pas immédiatement envoyées au du système d'exploitation à écrire par InnoDB, qui peut le rendre sensiblement plus rapide que MyISAM dans quelques situations. InnoDB stocke des rangées de données physiquement dans l'ordre de clé primaire tandis que MyISAM les stocke typiquement la plupart du temps dans l'ordre dans lequel elles sont ajoutées. Ceci correspond au dispositif du serveur de la milliseconde SQL de « des index groupés » et au dispositif d'Oracle connu sous le nom de " ; tables." organisé par index ; Quand la clé primaire est choisie pour assortir les besoins du terrain communal questionne ceci peut donner un avantage substantiel d'exécution. Par exemple, des disques de banque de client pourraient être groupés par le client dans InnoDB mais à la date de transaction avec MyISAM, ainsi InnoDB exigerait probablement de peu de recherches de disque et de moins de RAM de rechercher et cacher une histoire de compte de client. D'une part, l'insertion des données dans les ordres qui diffèrent sensiblement de l'ordre de clé (PK) primaire exigera vraisemblablement qu'InnoDB font beaucoup de réarrangement des données afin de l'entrer dans l'ordre du PK. Ceci place InnoDB à un léger inconvénient parce qu'il ne permet pas structurer de table basé par ordre d'insertion. InnoDB actuellement ne fournit pas la compression et les formats laconiques de rangée fournis par MyISAM, ainsi le disque et le RAM de cachette exigé peuvent être plus grands. Un format aérien inférieur est disponible pour MySQL 5.0, réduisant au-dessus d'environ 20% et l'utilisation de la compression de page est prévue pour une future version. En fonctionnant en modes entièrement Acide-conformes, InnoDB doit faire un éclat au disque au moins une fois par transaction, bien qu'il combine des éclats pour des insertions des raccordements multiples. Pour les unités de disque dur ou les rangées typiques, ceci imposera une limite d'environ 200 transactions de mise à jour par seconde. Si vous avez besoin des taux de transaction plus élevés, les contrôleurs de disques avec écrivent la mise en antémémoire et le support de batterie sera exigé afin de maintenir l'intégrité transactionnelle. InnoDB offre également plusieurs modes qui réduisent cet effet, menant naturellement à une perte d'intégrité transactionnelle. MyISAM n'en a aucun de ces frais généraux, mais seulement parce qu'il ne soutient pas des transactions.