Quando um novo cliente conecta ao mysqld
, o
mysqld
extende uma nova thread para lidar com
o pedido. Esta thread primeiro confere se o nome da máquina
está no cache de nomes de máquinas. Se não, a thread tenta
resolver o nome da máquina.
Se o sistema operacional suporta as chamadas seguras com
thread gethostbyaddr_r()
e
gethostbyname_r()
, a thread as utiliza
para fazer a resolução do nome máquina.
Se o sistema operacional não suporta as chamadas de threads
seguras, a thread trava um mutex e chama
gethostbyaddr()
e
gethostbyname()
. Perceba que neste caso
nenhuma outra thread pode resolver outros nomes de máquinas
que não existam no cache de nomes de máquina até que a
primeira thread esteja destrave o mutex.
Você pode desabilitar a procura de nomes de máquinas no DNS
iniciando o mysqld
com a opção
--skip-name-resolve
. No entanto, neste caso
você só pode usar números IP nas tabelas de privilégio do
MySQL.
Se você possuir um DNS muito lento e várias máquinas, pode
obter mais desempenho desligando a procura de nomes de máquinas
usando a opção --skip-name-resolve
ou
aumentando HOST_CACHE_SIZE
(valor padrão:
128) e recompilar mysqld
.
Você pode desabilitar o cache de nomes de máquinas iniciando o
servidor com a opção --skip-host-cache
. Para
limpar a cache do nome de máquinas, envie uma instru;ção
FLUSH HOSTS
ou execute o comando
mysqladmin flush-hosts
.
Se você deseja disabilitar as conexões
TCP/IP
totalmente, inicie o
mysqld
com a opção
--skip-networking
.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.