Когда к mysqld подключается
новый клиент, mysqld
выделяет новый поток для обработки
данного запроса. Этот поток
вначале проверяет, имеется ли в
кэше имен хостов имя требуемого
хоста. Если нет, то поток вызовет
функции gethostbyaddr_r() и
gethostbyname_r(), чтобы
определить имя хоста.
Если операционная система не
обеспечивает вышеописанные вызовы
с поддержкой потоков, то данный
поток заблокирует флаг и вызовет
вместо этого функции
gethostbyaddr() и
gethostbyname(). Следует
учитывать, что в таком случае
никакой другой поток не сможет
определять имена других хостов,
отсутствующих в кэше имен хостов,
пока первый поток не будет готов.
Можно заблокировать поиск DNS хоста,
запустив mysqld с
параметром --skip-name-resolve. В
этом случае, однако, в таблицах
привилегий MySQL можно использовать
только IP-адреса.
Если процесс установления DNS очень
медленный и хостов очень много, то
можно получить более высокую
производительность либо путем
блокировки поиска DNS при помощи
--skip-name-resolve, либо увеличив
размер определения
HOST_CACHE_SIZE (по умолчанию:
128) и перекомпилировав
mysqld.
Заблокировать кэш имен хостов
можно с помощью --skip-host-cache.
Можно также очистить этот кэш с
помощью команды FLUSH HOSTS
или mysqladmin flush-hosts.
Можно запретить соединения по
протоколу TCP/IP, запустив
mysqld с опцией
--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.
© 1995-2005 MySQL AB. All rights reserved.
