Spec-Zone .ru
спецификации, руководства, описания, API
|
Сервер MySQL создает следующие потоки:
Потоки менеджера соединений обрабатывают клиентские запросы соединения на сетевых интерфейсах, которые слушает сервер. На всех платформах один поток менеджера обрабатывает запросы соединения TCP/IP. На Unix этот поток менеджера также обрабатывает запросы соединения файла сокета Unix. На Windows поток менеджера обрабатывает запросы сопряжения с общей памятью, и другое соединение именованного канала дескрипторов запросы. Сервер не создает потоки, чтобы обработать интерфейсы, которые он не слушает. Например, Windows server, у которого нет поддержки соединений именованного канала включенной, не создает поток, чтобы обработать их.
Потоки менеджера соединений связывают каждое клиентское соединение с потоком, выделенным этому, которое обрабатывает аутентификацию и обработку запросов для того соединения. Потоки менеджера создают новый поток когда необходимо, но пытаются избежать делать так, консультируясь с кэшем потока сначала, чтобы видеть, содержит ли он поток, который может использоваться для соединения. Когда соединение заканчивается, его поток возвращается к кэшу потока, если кэш не полон.
Для получения информации о настройке параметров, которые управляют ресурсами потока, см. Раздел 8.11.5.1, "Как MySQL Uses Threads for Client Connections".
На главном сервере репликации соединения от ведомых серверов обрабатываются как клиентские соединения: есть один поток на соединенное ведомое устройство.
На ведомом сервере репликации поток ввода-вывода запускается, чтобы соединиться с главным сервером и считать обновления из этого. Поток SQL запускается, чтобы применить обновления, считанные от ведущего устройства. Эти два потока работают независимо и могут быть запущены и остановлены независимо.
Поток сигнала обрабатывает все сигналы. Этот поток также обычно обрабатывает
аварийные сигналы и вызовы process_alarm()
вызвать тайм-ауты на
соединениях, которые были неактивны слишком долго.
Если InnoDB
используется, будет дополнительное чтение
и запишет потоки по умолчанию. Числом их управляют innodb_read_io_threads
и innodb_write_io_threads
параметры. См. Раздел
14.2.6,"InnoDB
Опции запуска и Системные Переменные".
Если mysqld
компилируется с -DUSE_ALARM_THREAD
, создается выделенный поток, который
обрабатывает аварийные сигналы. Это только используется на некоторых системах, где есть проблемы с sigwait()
или если Вы хотите использовать thr_alarm()
кодируйте в своем приложении без выделенного потока обработки сигнала.
Если сервер запускается с --flush_time=
опция,
выделенный поток создается, чтобы сбросить все таблицы каждый val
val
секунды.
Каждая таблица та, для который INSERT DELAYED
заявления делаются, получает его собственный поток. См. Раздел
13.2.5.2,"INSERT DELAYED
Синтаксис".
Если планировщик события является активным, есть один поток для планировщика, и поток для каждого в настоящий момент рабочего события. См. Раздел 19.4.1, "Краткий обзор Планировщика События".
mysqladmin
processlist только показывает соединение, INSERT DELAYED
, репликация, и потоки события.