(mysql.info) dns
Info Catalog
(mysql.info) memory-use
(mysql.info) optimizing-the-server
7.5.6 How MySQL Uses DNS
------------------------
When a new client connects to `mysqld', `mysqld' spawns a new thread to
handle the request. This thread first checks whether the hostname is in
the hostname cache. If not, the thread attempts to resolve the hostname:
* If the operating system supports the thread-safe
`gethostbyaddr_r()' and `gethostbyname_r()' calls, the thread uses
them to perform hostname resolution.
* If the operating system does not support the thread-safe calls,
the thread locks a mutex and calls `gethostbyaddr()' and
`gethostbyname()' instead. In this case, no other thread can
resolve hostnames that are not in the hostname cache until the
first thread unlocks the mutex.
You can disable DNS hostname lookups by starting `mysqld' with the
-skip-name-resolve option. However, in this case, you can use only IP
numbers in the MySQL grant tables.
If you have a very slow DNS and many hosts, you can get more
performance by either disabling DNS lookups with -skip-name-resolve or
by increasing the `HOST_CACHE_SIZE' define (default value: 128) and
recompiling `mysqld'.
You can disable the hostname cache by starting the server with the
-skip-host-cache option. To clear the hostname cache, issue a `FLUSH
HOSTS' statement or execute the `mysqladmin flush-hosts' command.
To disallow TCP/IP connections entirely, start `mysqld' with the
-skip-networking option.
Info Catalog
(mysql.info) memory-use
(mysql.info) optimizing-the-server
automatically generated byinfo2html