Как 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