Services webmasters
Partenaires
Jeux concours gratuits
 
Gestion des erreurs
<<<
Restrictions sur les tables InnoDB Historique de l'évolution InnoDB
>>>

7.5 Tables InnoDB
7 Types de tables MySQL
 Manuel de Référence MySQL 4.1 : Version Française

Présentation des tables InnoDB
Options de démarrage InnoDB
Créer des bases InnoDB
Créer des tables InnoDB
Ajouter et retirer des données et des logs InnoDB
Sauver et restaurer une base InnoDB
Transférer une base de données InnoDB vers une autre machine
Modèle transactionnel de InnoDB
Implémentation du multi-versionnage
Structures de tables et d'index
Gestion de l'espace fichiers et des entrées/sorties disque
Gestion des erreurs
->Restrictions sur les tables InnoDB
Historique de l'évolution InnoDB
Informations de contact InnoDB

7.5.13 Restrictions sur les tables InnoDB

  • Attention : NE convertissez PAS un système de tabel MyISAM en InnoDB! Cela n'est pas supporté. Si vous faîtes cela, MySQL ne va pas redémarrer jusqu'à ce que vous restauriez vos données avec une vieille sauvegarde, ou que vous regénériez ces tables avec le script mysql_install_db .
  • SHOW TABLE STATUS ne donne pas de statistiques précises sur les tables InnoDB, hormis pour la taille physique réservée. Le nombre de lignes est seulement une approximation utilisée en optimisation SQL.
  • Si vous essayez de créer un index unique sur un préfixe d'une colonne, vous allez obtenir une erreur :
    
    CREATE TABLE T (A CHAR(20), B INT, UNIQUE (A(5))) TYPE = InnoDB;
    
    Si vous créez un index non-unique sur un préfixe de colonne, InnoDB va créer un index pour toute la colonne.
  • INSERT DELAYED n'est pas supportés par les tables InnoDB.
  • La commande MySQL LOCK TABLES ne reconnait pas le verrouillage de ligne InnoDB réalisé dans les commandes SQL achevées : cela signifie que vous pouvez poser un verrou sur une table même si il existe une transaction qui a été posée par un autre utilisateur. Par conséquent, votre opération doit attendre que les autres tables soient libres, et elle peut aussi entrer en conflit avec une autre requête. De plus, un blocage de verrous est possible mais il ne met pas en danger l'intégrité des transactions, car le verrou de ligne posé par InnoDB se charge toujours de l'intégrité. Enfin, un verrou de table évite aux autre transactions de poser un verrou de ligne (en conflit avec le mode de verrous) sur la table.
  • Vous ne pouvez pas avoir une clé sur une colonne de type BLOB et TEXT .
  • Une table ne peut pas recevoir plus de 1000 colonnes.
  • DELETE FROM TABLE ne regénère pas la table, mais au lieu de cela, il efface les lignes une à une, ce qui est bien plus lent. Dans les prochaines versions, MySQL va pouvoir utiliser la commande TRUNCATE qui est très rapide.
  • La taille de page par défaut est de InnoDB est de 16 ko. En recompilant le code, vous pouvez lui changer la valeur de 8 ko à 64 ko. La taille maximale de ligne est légèrement inférieure à la moitié de la taille d'une page de base dans les versions inférieure à 3.23.40 de InnoDB. Depuis la versions source 3.23.41 BLOB et TEXT sont autorisé à être plus petits que 4 Go, la taille totale de ligne doit aussi être de moins de 4 Go. InnoDB ne stocke par les fichiers dont le taille est inférieure à 128 octets dans une page séparée. Après que InnoDB a modifié la ligne en stockant les grandes colonnes dans une page séparée, le reste de la taille de la chaîen doit être plus petite que la moitiée de la page de base. La taille maximale de clé est de 7000 octets.
  • Sur certains systèmes d'exploitation, le fichier de données est limité à 2 Go. La taille combinée des fichiers de log doit être inférieure à 4 Go.
  • La taille maximale d'un espace de tables est de 4 millions de pages. C'est aussi la taille maximale pour une table. La taille minimale pour une table est de 10 Mo.

<< Restrictions sur les tables InnoDB >>
Gestion des erreurs Tables InnoDB Historique de l'évolution InnoDB
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -