Un problème, une interrogation ? Adressez-vous à la rédaction
de JDNet Développeurs
MyISAM est effectivement le type de table le plus utilisé
sous MySQL, bien que ce SGBD reconnaisse aussi par défaut
les types HEAP/Memory, InnoDB et NDB. Il existe en outre d'autres
types, comme ISAM, Berkeley DB ou Merge, et même des types
spécifiques à un SGBD.
ISAM
est le type le plus répandu, stable et éprouvé, mais en perte
de vitesse due à son manque de fonctionnalité : pas de transaction,
pas de récupération en cas de crash.
MyISAM est une évolution de ISAM, capable de fonctionner
avec de larges données et très rapide pour les SELECT à rallonge.
Ces tables prennent moins de places que leurs confrères, reconnaît
les index full-text et les tables compressées.
InnoDB est obligatoire dès que l'on doit travailler
avec les transactions (type ACID) et les clés étrangères.
En revanche, toutes les mises à jour doivent se faire par
transaction, ce qui peut ralentir le système. Autre handicap,
il n'y est pas possible d'utiliser d'appel fulltext, ce qui
ralentit d'autant plus le travail. InnoDB dispose d'un système
de récupération automatique en cas de crash, et fait un gros
usage de l'espace disque et mémoire.
Heap (ou Memory) l'inconvénient de son avantage
: ce type est stocké en mémoire, donc est extrêmement rapide,
mais en contrepartie, tout redémarrage provoque la perte des
données construites pendant la session
Par ailleurs, il ne
reconnaît les colonnes de types VARCHAR, BLOB et TEXT.
NBD : pas un type de table en soi, mais un nud central
pour groupe de bases. Cela optimiser la montée en charge.
Berkeley DB est proche de InnoDB dans sa conception.
Pour un site lambda, utiliser MyISAM permettra de se tirer
de la plupart des situations. Dès que le SGBD plie sous le
poids des requêtes, il faudra alors songer à revoir sa structure
ou à intégrer un système de cache.
Il est également possible de mélanger les type de table pour
les optimiser selon le contenu de chacune. Le site de MySQL
suggère d'utiliser MyISAM pour la connexion et la recherche,
InnoDB pour les informations de connexion et le système de
publicité, et Heap pour les tables temporaires et le données
très demandées.
|
Forum |
|
Réagissez
dans les forums
de JDN Développeurs
|
Voilà pour ce résumé rapide des types de stockage
possibles; les administrateurs de SGBD se doivent de se documenter
à leur propos pour optimiser au mieux leur système.
|