我正在使用Psycopg2向我的Postgres DB发出许多SELECT
查询。这些查询的结果很小,并且以高频率发送。
为了避免自己管理交易(因为我很懒),我在会话设置中设置了autocommit = True
。
编辑:查询之间没有长时间停顿,没有数据操作,并且在我停止查询后光标立即关闭。
我想知道:当以高频率发出SELECT
查询时,是否存在使用自动提交的性能损失?
使用Postgres 9.6和Psycopg 2.7.7。是的,我正在使用准备好的陈述。
Autocommit是正确的,因为:
SELECT
持有一个n ACCESS SHARE
锁在桌子上,这将阻止像TRUNCATE
,DROP TABLE
和真空截断的命令。BEGIN
和COMMIT
语句,这将导致不必要的客户端 - 服务器往返。