Skip to content

Mysql

The good old days

Insertion de masse

1
2
INSERT INTO A (a,b,c) 
VALUES (1,2,3),(4,5,6),(7,8,9)
  • Utiliser la variable bulk_insert_buffer_size pour accélérer encore (sur des tables non-vides)
  • Ou utiliser load_data_infile qui est 20x plus rapide qu'un insert

Query cache

Le query cache est un tampon d'une certaine taille (il ne s'agit pas d'un cache en durée !) qui retient les requêtes SELECT en mode texte.

  • Vérifier que le query cache est activé : SHOW VARIABLES LIKE 'have_query_cache';
  • Pour ne pas passer par le query cache sur une requête: SELECT SQL_NO_CACHE toto,tata from titi
  • Pour ne pas passer par le query cache sur une connexion: SET SESSION query_cache_type=0;

Représenter un booléen

Faire un enum? Prendre un booléen ? Un set ? La réponse est ...

TINYINT: la bonne méthode

  • TINYINT(1) = BOOLEAN = BOOL. Si la valeur est 0, alors la valeur est false. Sinon true.
  • TINYINT peut aller jusqu'à 255 en unsigned

ENUM: la fausse bonne méthode

Les autres "solutions"

  • BIT est un synonyme de TINYINT(1) avant la 5.0.3. Aujourd'hui, il représente une valeur binaire.
  • SET