A.15 MySQL 8.4 FAQ: Пул потоков MySQL Enterprise
- A.15.1. Что такое пул потоков и какую проблему он решает?
- A.15.2. Как пул потоков ограничивает и управляет одновременными сессиями и транзакциями для оптимальной производительности и пропускной способности?
- A.15.3. Чем пул потоков отличается от пула соединений на стороне клиента?
- A.15.4. Когда следует использовать пул потоков?
- A.15.5. Существуют ли рекомендуемые конфигурации пула потоков?
|
A.15.1. |
Что такое пул потоков и какую проблему он решает? |
|
Пул потоков MySQL — это плагин сервера MySQL, который расширяет стандартные возможности обработки соединений сервера MySQL для ограничения количества одновременно выполняемых операторов/запросов и транзакций, гарантируя, что каждый из них имеет достаточные ресурсы ЦП и памяти для выполнения своей задачи. Для MySQL 8.4 плагин пула потоков включен в MySQL Enterprise Edition, коммерческий продукт. По умолчанию модель обработки потоков в MySQL Server выполняет операторы с помощью одного потока на одно соединение клиента. По мере подключения большего количества клиентов к серверу и выполнения ими операторов общая производительность снижается. Плагин пула потоков предоставляет альтернативную модель обработки потоков, предназначенную для уменьшения накладных расходов и повышения производительности. Плагин пула потоков увеличивает производительность сервера, эффективно управляя потоками выполнения операторов для большого количества соединений клиентов, особенно на современных системах с несколькими ЦП/ядрами. Дополнительную информацию см. в разделе 7.6.3, “MySQL Enterprise Thread Pool”. |
|
|
A.15.2. |
Как пул потоков ограничивает и управляет одновременными сессиями и транзакциями для оптимальной производительности и пропускной способности? |
|
Пул потоков использует подход «разделяй и властвуй» для ограничения и балансировки одновременности. В отличие от стандартной обработки соединений MySQL Server, пул потоков разделяет соединения и потоки, поэтому между соединениями и потоками, выполняющими операторы, полученные от этих соединений, нет фиксированной связи. Затем пул потоков управляет соединениями клиентов в настраиваемых группах потоков, где они имеют приоритет и находятся в очереди на основе характера работы, которую они должны выполнить. Дополнительную информацию см. в разделе 7.6.3.3, “Thread Pool Operation”. |
|
|
A.15.3. |
Чем пул потоков отличается от пула соединений на стороне клиента? |
|
Пул соединений MySQL работает на стороне клиента, чтобы убедиться, что MySQL-клиент не постоянно подключается и отключается от сервера MySQL. Он предназначен для кэширования неиспользуемых соединений в MySQL-клиенте для использования другими пользователями по мере необходимости. Это минимизирует накладные расходы и затраты на установку и разрыв соединений при отправке запросов на сервер MySQL. Пул соединений MySQL не имеет доступа к возможностям обработки запросов или нагрузке сервера MySQL на стороне базы данных. В отличие от него, пул потоков работает на стороне сервера MySQL и предназначен для управления выполнением входящих одновременных соединений и запросов по мере их получения от соединений клиентов, обращающихся к базе данных MySQL на стороне сервера. Благодаря разделению задач, пул соединений MySQL и пул потоков ортогональны и могут использоваться независимо друг от друга. Пул соединений MySQL через MySQL Connectors описан в главе 31, Подключения и API. |
|
|
A.15.4. |
Когда следует использовать пул потоков? |
|
Для оптимального использования пула потоков стоит учесть несколько правил: Переменная MySQL Если вы используете Наконец, если ваша рабочая нагрузка состоит в основном из коротких запросов, пул потоков должен быть полезен. Более подробную информацию см. в разделе 7.6.3.4, “Настройка пула потоков”. |
|
|
A.15.5. |
Существуют ли рекомендуемые конфигурации пула потоков? |
Пул потоков имеет ряд параметров конфигурации, зависящих от сценария использования, которые влияют на его производительность. Подробную информацию и советы по настройке см. в разделе 7.6.3.4, “Настройка пула потоков”. |
© 2025 Oracle
Licensed under the GPLv2 License.