Submitted by martinez on Sun, 09/22/2019 - 02:01
Пример 1 - прочитать из базы значение
команда |
состояние соединения |
последняя SQL |
комментарии |
---|
engine = create_engine(f'postgresql://...') |
нет соединения |
|
|
result = engine.execute("select name from host LIMIT 10") |
idle in transaction |
select name from host LIMIT 10 |
данные уже в result |
for row in result: print("name:", row['name']) |
idle |
ROLLBACK |
соединение в пуле |
если считывать данные не до конца в цикле, то соединение не возвращается в пул, и тем более если совсем не считывать данные
engine = create_engine(f'postgresql://...') |
нет соединения |
|
|
result = engine.execute("select name from host LIMIT 10") |
idle in transaction |
select name from host LIMIT 10 |
данные уже в result |
for row in result: break; print("name:", row['name']) |
idle in transaction |
select name from host LIMIT 10 |
соединение не в пуле |
решение в закрытии result, очевидно, result.close() лучше всегда вызывать
engine = create_engine(f'postgresql://...') |
нет соединения |
|
|
result = engine.execute("select name from host LIMIT 10") |
idle in transaction |
select name from host LIMIT 10 |
данные уже в result |
result.close() |
idle |
ROLLBACK |
соединение в пуле |