Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi MS-Office SQL & SGBD Oracle  4D  Business Intelligence
Forums FAQ Tutoriels SQL Livres Access DB2 Firebird InterBase Mysql Oracle PostGreSQL SQL-Server Sybase
Réglages pour améliorer les performances
Les valeurs de taille de tampon, longueurs et taille de piles sont données en octets. Vous pouvez spécifier des valeurs avec un suffixe "K" ou "M" pour indiquer des kilos-octets ou des mégas-octets. Par exemple, "16M" indique 16 mega-octets. La casse des lettres de suffixe est indifférente; "16M" et "16m" sont équivalents.

Notes
Quand vous spécifier une taille de buffer, il n'y a pas de réservation de mémoire pour "bloquer" autant de place que ce que vous avez précisé. Cette taille est la taille maximum qui sera alloué. Si vos index occupent 2Mo et que donnez un "key_buffer_size" de 32Mo, seulement 2Mo seront pris au maximum pour ce buffer.
Le cache de requête n'existe que pour les dernières versions 4. Les noms des variables pour les versions 3 sont signalés par "Précédemment".

L'utilisation de "key_buffer_size" donne des améliorations substantielles. Ne passez pas à côté de cette fonction, disponible pour les versions 3 et 4.
La mise en cache des requêtes permet de gagner un temps précieux sur l'usage de requêtes répétitives. Attention les requêtes doivent être identiques octet par octet pour être considérées similaires.

Chacune des variables ci-dessous présente un intérêt, et son utilisation peut se ressentir immédiatement sur les performances. Mais ce ne sont pas les seules, référez vous à la documentation pour la liste complète.
N'oubliez pas que ces valeurs sont lues au démarrage de MySql, il vous faudra arrêter et redémarrer MySql pour que les changements soit pris en compte

Les informations ci-dessous ont été extraites et traduites par mes soins de la documentation de la version 4.0.3-beta de MySql pour Windows NT.


bdb_cache_size
Le tampon qui est alloué pour mettre en cache les index et les données des tables de type "BDB".

bulk_insert_buffer_size
(Précédemment "myisam_bulk_insert_tree_size")
Les tables MyISAM utilisent un cache spécial de type "arbre" pour réaliser des insertions massives (comme `INSERT ... SELECT', `INSERT ... VALUES (...), (...), ...', et `LOAD DATA INFILE') plus rapides. Cette variable limite la taille du cache pour chaque processus. Affecter 0 à cette variable désactive cette optimisation. La valeur par défaut est 8 MO.

join_buffer_size
La taille du tampon qui est utilisé pour des jointures "intégrales" (jointures qui n'utilisent pas d'index). Le tampon est alloué une fois pour chaque jointure "intégrale" entre deux tables. Augmentez cette valeur pour obtenir une jointure "intégrale" quand on ajouter des index ne donne pas de résultat. (Normalement la meilleure façon d'obtenir des jointures rapides est d'ajouter des indexs bien placés).

key_buffer_size
Les blocs d'index sont mis en mémoire cache et partagés par tous les processus. "key_buffer_size" est la taille du tampon utilisé pour stocker les blocs d'index. Augmentez cette valeur pour obtenir une meilleur gestion des index (pour toute les lectures et les écritures multiples) au maximum de ce que vous pouvez vous permettre; 64Mo sur une machine de 256Mo qui fait fonctionner principalement MySQL est assez courant. Si cependant vous mettez une valeur trop importante (plus de 50% de votre mémoire totale) votre systême pourrait commencer à utiliser le cache sur disque (paging) et devenir extrêment lent.
Rappelez vous que MySQL ne met pas en cache les lectures de données, vous devrez laissez de la place à votre systême pour le cache du systême de fichier.

Vous pouvez vérifier les performances du cache d'index avec la commande "show status" et en examinant les variables "Key_read_requests", "Key_reads", "Key_write_requests", et "Key_writes". Le ratio "Key_reads/Key_read_request" devrait normalement être inférieur à 0.01. Le ratio "Key_write/Key_write_requests" est habituellement proche de 1 si vous utilisez principalement des "update" et des "delete". Il peut être beaucoup plus petit si vous tendez à faire des "update" qui affectent beaucoup de données à la fois, ou si vous utilisez "DELAY_KEY_WRITE".

read_buffer_size
(Précédemment "record_buffer")
Chaque processus qui effectue un parcours séquentiel alloue un tampon de cette taille pour chaque table qu'il parcours. Si vous faites beaucoup de parcours séquentiels, vous pourriez augmenter cette valeur.

record_rnd_buffer_size
Quand des données sont lus après un tri, les données sont lus à travers ce tampon pour éviter des accès disques. Ce tampon peut beaucoup améliorer l'usage de "ORDER BY" si sa taille est importante. Comme cette variable est spécifique à chaque processus, il vaut mieux ne pas spécifier sa valeur globalement, mais changer sa valeur lors de l'éxécution de requêtes importantes.

query_cache_limit
Ne pas mettre en cache les résultats supérieur à cette valeur.
(Défaut : 1MO).

query_cache_size
Taille de mémoire allouée pour stocker les résultats de requêtes effectuées. Si cette valeur est à 0, le cache de requêtes est désactivé (c'est l'état par défaut).

query_cache_type
Peut prendre les valeurs suivantes (numériques seulement):
Valeur Alias Commentaire
0 OFF Ne pas mettre en cache ni récupérer des valeurs
1 ON Mettre en cache tous les résultats sauf les requêtes ayant précisé "SELECT SQL_NO_CACHE"
2 DEMAND Mettre en cache seulement les requêtes ayant précisé " SELECT SQL_CACHE"

sort_buffer
Chaque processus qui a besoin de faire un tri alloue un tampon de cette taille. Augmentez cette valeur pour avoir des "ORDER BY" ou des "GROUP BY" plus rapides.  
Index - Retour au sommaire tutoriels
Responsables bénévoles de la rubrique SQL & SGBD : Benjamin Gagneux et Frédéric Dubois - Contacter par EMail :
Vos questions techniques : forum d'entraide SQL & SGBD - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.