我想在缓存CREATE SEQUENCE serial CACHE 100中使用postgres序列。目标是通过~500个连接/应用程序线程并发地提高每秒3000次SELECT nextval('serial');使用的性能。
问题是,我正在进行密集的自动标度,每次连接断开时,连接都会被断开和重新连接,偶尔会在顺序中留下未使用in的“漏洞”。
好消息是,我正在使用带有事务池模式的PgBouncer heroku buildpack。
我的问题是:事务池模式会解决我描述的“漏洞”问题吗?它会重用会话吗?下一个应用程序连接将从池中获取这个会话并继续使用序列的缓存吗?
发布于 2016-11-08 23:38:03
这取决于server_reset_query的设置。如果将该设置设置为DISCARD ALL,则在将连接到的服务器发送给客户端之前,将丢弃序列缓存。但是对于事务池,推荐的server_reset_query是空的,所以在这种情况下您可以重用序列缓存。您还可以使用不同的DISCARD命令,这取决于您的需要。
https://stackoverflow.com/questions/40315131
复制相似问题