Bonjour
J'utilise MySQL 4 et quelques (sur mon OVH mutualisé) lequel j'administre depuis phpmyadmin et j'utilise donc exclusivement en PHP.
Je n'ai qu'un espace de mémoire limité, c'est pour ça que je grapille chaque octets.
Première question :
Dans phpMyAdmin justement, lors de l'affichage de la structure d'une table, il affiche les types suivie de leur "taille". Cette taille est en octets ?
Je m'explique : D'après PhpMyAdmin, un int mesure 10 octets, un bigint(20), mediumint(8), smallint(5), tinyint(3). D'après la documentation de MySQL (http://dev.mysql.com/doc/refman/5.0/...uirements.html), cela devrait être 4, 8, 3, 2, 1 au lieu de 20, 10, 8, 5 3 respectivement.
Faut-il que je modifie manuellement chaque colonne avec la bonne taille en octets ?
Seconde question :
A partir de quelle taille d'après vous, est-il plus judicieux d'utiliser un VARCHAR(X) au lieu d'un CHAR(X) ?
Troisième question :
J'ai lu dans l'explication de l'optimisation des requêtes LEFT JOIN (http://dev.mysql.com/doc/refman/5.0/...imization.html), les conditions de la clause ON sont transformées en WHERE.
Sont-elles simplement ajouté au WHERE de la requête principale (ce qui revient a faire une jointure naturelle (produit cartésien), et appliquer la sélection de ligne après) ?
En gros ma question est : est-ce intéressant de remplacer systématiquement chaque jointure naturelle par un LEFT JOIN quand cela est possible ?
Quatrième question :
Mes tables sont enregistré aux format du moteur MyISAM. J'ai le choix entre: MyISAM, MERGE, HEAP, MEMORY et ISAM. J'imagine que c'est le meilleure pour MySQL 4 ?
Cinquième question :
Si je n'ai pas besoin de requêtes imbriquées (sous requêtes), de clés étrangères ou je ne sais quoi, est-ce qu'il est intéressant de passer à MySQL 5 ? (point de vu vitesse d'exécution des requêtes ?)
Merci d'avance !
Partager