5.5 Optimisation du serveur MySQL
5 Optimisation de MySQL
Manuel de Référence MySQL 4.1 : Version Française
. Réglage du système, au moment de la compilation, et paramètres du démarrage . Réglage des paramètres du serveur . Influences de la compilation et des liaisons sur la vitesse de MySQL . Comment MySQL gère la mémoire ->Comment MySQL utilise le DNS . Syntaxe de SET
|
5.5.5 Comment MySQL utilise le DNS
Quand un nouveau thread se connecte à
mysqld
,
mysqld
crée
nouveau thread pour traiter la requête. Ce thread contrôle d'abord si
le nom de l'hôte est dans le cache des noms d'hôte. Si ce n'est pas le
cas, le thread va appeler
gethostbyaddr_r()
et
gethostbyname_r()
pour résoudre le nom de l'hôte.
Si le système d'exploitation ne supporte pas les appels précédents, le
thread va verrouiller un "mutex" et appeler
gethostbyaddr()
et
gethostbyname()
à la place. Sachez que dans ce cas, aucun autre
thread ne peut résoudre de nom d'hôte qui n'est pas dans le cache tant
que le premier thread n'a pas fini.
Il est possible de désactiver la recherche du nom par DNS en démarrant
mysqld
avec l'option
--skip-name-resolve
. Dans ce cas,
il est toujours possible d'utiliser les adresses IP dans les tables
de privilèges de MySQL.
Si votre service DNS est très lent et que vous avez beaucoup d'hôtes,
vous pouvez améliorer les performances soit en désactivant le DNS avec
--skip-name-resolve
, soit en augmentant la taille de
HOST_CACHE_SIZE
(par défaut: 128) et en recompilant
mysqld
.
Il est possible de désactiver le cache de noms d'hôte avec
--skip-host-cache
. Il est possible de vider le cache des noms d'hôtes
avec
FLUSH HOSTS
ou avec
mysqladmin flush-hosts
.
Si vous ne voulez pas autoriser les connections par
TCP/IP
, vous
pouvez utiliser l'option
--skip-networking
au démarrage de
mysqld
.
|