Как MariaDB работает с поддержанием соединения с БД?

Я использую Peewee ORM для обновления и изменения таблицы базы данных из моего проекта Python. Я установил максимальный предел подключения до 15, используя:

set global max_connections = 15

чтобы получить полное соединение я запускаю команду,

> select count(*) from  information_schema.processlist;

> 12

теперь этот лимит соединения равен 15, и даже если я запускаю свой код, чтобы выполнить некоторую работу с БД, открывая соединение, количество соединений увеличивается на 2

> select count(*) from  information_schema.processlist;

> 14

Теперь, даже если я выполнил эту задачу, я закрываю терминал Python. Я по-прежнему вижу, что общее число соединений из списка процессов равно 14, похоже, что старые соединения используются повторно или что, если я запускаю ту же команду для обновления таблицы БД, из другой терминал я добавляю еще 2 соединения, но это выдает ошибку, говорящую о слишком большом количестве соединений но первый терминал, который я открыл, все еще работает.

Я могу опубликовать код peewee, если требуется.

1 ответ

Решение

Если вы используете обычный класс MySQLDatabase, то вызов.close() для соединения закроет его.

С другой стороны, если вы используете PooledMySQLDatabase, .close() перезапустит соединение с пулом доступных соединений. Вы можете управлять соединениями в пуле, используя следующие API: http://docs.peewee-orm.com/en/latest/peewee/playhouse.html

Другие вопросы по тегам