[MySQL] Character Set et Collation

Ce PDF Jeux_et_Collations.pdf fait le bilan sur les différents jeux de caractères et les collations MySQL 5.

[MySQL] Optimisation de tris

Pour optimiser une commande de tri avec MySQL, il y a plusieurs options à étudier :

1) Placer un index sur la colonne de tri.
2) Ajouter des indications telles que Straight_join (jointure directe), FORCE INDEX (pour forcer l’utilisation d’un index) ou SQL_BIG_RESULT (pour signaler immédiatement que le jeu de lignes sera grand).
3) Modifier les variables système pour agrandir les buffers de tri : SQL_SORT_BUFFER_SIZE=50000000

Remarque : Vu sur Nexen.net

Les types de table MySQL

Un petit pense-bête sur les différents types de table sous MySQL (Source: Journal du Net) :

  • 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 (FOREIGN KEY). 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 nÅ“ud central pour groupe de bases. Cela optimiser la montée en charge.
  • Berkeley DB est proche de InnoDB dans sa conception.