Назад к вопросам
Middle
104
questionbank
Как узнать количество текущих подключений к базе данных?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Для PostgreSQL:
SELECT count(*) FROM pg_stat_activity; -- Все активные сессии
SELECT count(*) FROM pg_stat_activity WHERE state = 'active'; -- Только текущие выполняющиеся запросы
Для MySQL:
SHOW STATUS LIKE 'Threads_connected'; // Количество текущих активных подключений
SHOW PROCESSLIST; // Список всех процессов с их текущим состоянием
Для SQLite:
# Количество подключений определяется на уровне приложения,
# т.к. SQLite - это файл и не имеет встроенного сетевого сервера.
import sqlite3
def get_connections(db_path):
# В общем случае, это количество объектов Connection,
# созданных в приложении, которые еще не закрыты.
# SQLite не хранит состояние "подключений" как сетевая СУБД.
pass
В Python-приложении, как правило, используется пул соединений, и количество активных подключений можно узнать через его API.
Пример с SQLAlchemy:
from sqlalchemy import create_engine
engine = create_engine('postgresql://user:pass@host:port/db', pool_size=10, max_overflow=2)
# получить информацию о пуле
pool_status = engine.pool.status()
print(pool_status)
# Пример вывода: "Pool size: 10 Connections in pool: 5 Current overflow: 1"
# "Connections in pool" + "Current overflow" - количество текущих подключений,
# которые могут быть активны или находиться в режиме ожидания.