Chaque table InnoDB organise les données sur le support de données. L’accès ralentit un peu, mais devient nettement plus sûr, car chaque table est optimisée à l’aide d’une clé primaire. La sélection des données est relativement plus rapide, tandis que l’ajout et l’actualisation prennent plus de temps. C’est la raison pour laquelle on recommande le moteur de stockage InnoDB pour MySQL essentiellement pour les grosses bases de données et, notamment, lorsque de nombreuses données sont liées les unes aux autres.
Comme évoqué, avec InnoDB, les données d’une transaction sont reliées les unes aux autres. Lorsque des données sont supprimées, InnoDb supprime automatiquement toutes les données associées. Il est d’autant plus simple pour l’utilisateur de maintenir l’intégrité référentielle de la base de données. Cette intégrité référentielle doit être impérativement définie au préalable, sans quoi elle ne sera pas automatiquement préservée. On peut ainsi verrouiller, par exemple, l’accès en écriture à des paquets de données.
La structure des tables d’InnoDBest sauvegardée dans des fichiers frm, les données exploitées et les index dans un espace de tables relié à la base de données, qui peut être réparti dans un ou plusieurs fichiers. L’intégrité référentielle s’impose ici aussi : la configuration de l’espace des tables peut être répartie dans plusieurs répertoires, mais elle doit être spécifiée au début du travail et ne peut pas être modifiée ultérieurement. Travailler sur une table InnoDB s’apparente à travailler sur la partition d’un disque dur, où les modifications ultérieures peuvent entraîner une perte de données.