Tables ISAM
Le moteur de table originale de MySQL est le moteur ISAM. Il a été le seul moteur disponible jusqu'en MySQL 3.23, lorsque la version améliorée MyISAM a été inventée. ISAM est maintenant obsolète. Depuis MySQL 4.1, il est inclus dans le source, mais pas activé dans les versions binaires. Il disparaîtra en MySQL 5.0. Les versions embarquées de MySQL ne supportent pas les tables ISAM par défaut.
Etant donné l'obsolescence de ISAM, et comme MyISAM est une version améliorée de ISAM, il est recommandé de convertir les tables ISAM en MySAM dès que possible. Pour convertir une table ISAM en MyISAM, utilisez la commande ALTER TABLE :
mysql> ALTER TABLE tbl_name TYPE = MYISAM;
Pour plus d'informations sur MyISAM, voir l'article sur « Le moteur de tables MyISAM ». Chaque table ISAM est stockée dans trois fichiers. Les fichiers portent le nom de la table, et ont une extension qui indique leur type. Un fichier .frm stocke la définition de table. Le fichier de données a pour suffixe .ISD. Le fichier d'index a l'extension .ISM. ISAM utilise les index B-tree. Vous pouvez réparer ou vérifier une table ISAM avec l'utilitaire isamchk. ISAM possède les fonctionnalités/propriétés suivantes :
Clefs compressées et de tailles fixes Enregistrements de taille fixée ou dynamique 16 clefs avec 16 parties de clefs/clefs Taille maximale de la clef 256 (défaut) Les données sont enregistrées au format machine; c'est rapide, mais c'est dépendant de la machine/système d'exploitation. La plupart des choses vraies pour les tables MyISAM le sont pour les tables ISAM.
La différence majeure comparées aux tables MyISAM sont :
- Les tables ISAM ne sont pas portables directement entre les plates-formes/systèmes d'exploitation.
- Ne peut pas gérer les tables de taille supérieure à 4 Go.
- Ne supporte que la compression des préfixes sur les chaînes de caractères.
- Limites de clefs plus basses. Les tables à taille de ligne dynamique sont plus fragmentées.
- Ne supporte pas les tables MERGE.
- Les tables sont vérifiées et réparées avec isamchk plutôt que myisamchk.
- Les tables sont compressées avec pack_isam plutôt que myisampack.
- Impossible d'utiliser les commandes BACKUP TABLE et RESTORE TABLE.
- Impossible d'utiliser les commandes d'entretien:
CHECK TABLE, REPAIR TABLE, OPTIMIZE TABLE et ANALYZE TABLE.
Pas de support pour les index en texte plein ou spatiaux. Pas de support pour les jeux de caractères multiples. Les index ne peuvent pas être assignés à des caches de clés spécifiques.