15
Mar/09
3

Les tables temporaires

J’oublie parfois à quel point les tables temporaires peuvent être pratiques. On tente de sortir des rapports avec des tables qui ne sont pas prévues pour ça. On écrit des requêtes inimaginables et souvent très lentes. Résultat: on perd notre temps.

La solution: les tables temporaires ! Ce n’est pas très coûteux et drôlement pratique. Au lieu de prendre 25 minutes à écrire “une” requête qui prend un temps énorme à s’exécuter, prenez 10 minutes pour écrire 2-3 requêtes simples qui utilisent des tables temporaires et sortez le même résultat en quelques secondes!

Et si c’est efficace, performant (surtout performant) et récurrent, pourquoi ne pas transformer ces tables temporaires en view ?

Comments (3) Trackbacks (0)
  1. Maxime
    10:54 am on March 15th, 2009

    Oui je confirme, les tables temporaires sont sous-estimées. Une table type MEMORY remplit tellement de bons services, surtout lorsqu’on utilise et réutilise des résultats de requêtes.

  2. Pierre
    11:43 am on March 18th, 2009

    Ne pas confondre, cependant, tables *temporaires* et tables *en mémoire*. Les premières sont créées, sous MySQL en ajoutant le mot-clé TEMPORARY dans la requête CREATE. Elles ont une durée de vie limitées à la session qui les crée et ne sont accessibles que par elle.
    Les secondes, créées en ajoutant ENGINE = MEMORY à la requête CREATE, sont visibles par tout le monde et ont une durée de vie infinie (même si leur contenu ne survit pas à l’arrêt du serveur).

  3. PaT
    8:36 am on March 19th, 2009

    En effet. Les tables temporaires sont MyISAM par défaut. Il peut s’avèrer plus performant dailleur de créer les tables temporaires avec le type MEMORY lorsqu’elles sont petites.

    CREATE TEMPORARY TABLE myTmpTable (a int(10)) ENGINE=MEMORY;

Leave a comment

No trackbacks yet.