РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
9 of 711 menu

Атрибут pool класса Engine

Атрибут pool класса Engine возвращает объект пула соединений, который движок использует для управления подключениями к базе данных. Пул хранит открытые соединения и выдает их по запросу, что позволяет избежать постоянного переоткрытия соединений при каждом запросе. Атрибут доступен только для чтения и не принимает параметров.

Синтаксис

engine.pool

Пример

Давайте создадим движок и выведем объект пула соединений:

from sqlalchemy import create_engine engine = create_engine('sqlite:///:memory:') print(engine.pool)

Результат выполнения кода:

"<sqlalchemy.pool.impl.SingletonThreadPool object at 0x...>"

Пример

Давайте посмотрим на состояние пула до и после открытия соединения:

from sqlalchemy import create_engine, text engine = create_engine('sqlite:///:memory:') print(engine.pool.status()) with engine.connect() as conn: conn.execute(text('SELECT 1')) print(engine.pool.status())

Результат выполнения кода:

"Pool size: 0 Connections in pool: 0 Current Overflow: -1 Current Checked out connections: 0" "Pool size: 0 Connections in pool: 0 Current Overflow: 0 Current Checked out connections: 1"

Пример

Давайте настроим пул с помощью параметров pool_size и max_overflow и посмотрим на его работу:

from sqlalchemy import create_engine, text engine = create_engine( 'sqlite:///:memory:', pool_size=5, max_overflow=10, ) print(engine.pool.status()) with engine.connect() as conn: conn.execute(text('SELECT 1')) print(engine.pool.status())

Результат выполнения кода:

"Pool size: 5 Connections in pool: 0 Current Overflow: -5 Current Checked out connections: 0" "Pool size: 5 Connections in pool: 0 Current Overflow: -4 Current Checked out connections: 1"

Пример

Давайте используем пул типа StaticPool, который переиспользует единственное соединение:

from sqlalchemy import create_engine, text from sqlalchemy.pool import StaticPool engine = create_engine( 'sqlite:///:memory:', poolclass=StaticPool, ) print(engine.pool) with engine.connect() as conn: conn.execute(text('SELECT 1')) print(engine.pool.status())

Результат выполнения кода:

"<sqlalchemy.pool.impl.StaticPool object at 0x...>" "Pool size: 1 Connections in pool: 1 Current Overflow: 0 Current Checked out connections: 0"

Смотрите также

  • класс Engine,
    который представляет движок базы данных
  • атрибут url,
    который возвращает URL подключения движка
  • атрибут dialect,
    который возвращает диалект базы данных
  • метод dispose,
    который закрывает все соединения пула
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить