背景
1、产品的问题点
- 高并发的短连接性能差劲
2、问题点背后涉及的技术原理
- 短连接是指每次发起SQL请求时新建数据库连接, SQL请求结束后断开数据库连接的情况. 由于PG是进程模型, 每次发起会话时需要fork process, memcpy等动作. 每秒可以新建的进程数比较有限.
3、这个问题将影响哪些行业以及业务场景
- 没有连接池的高并发业务
4、会导致什么问题?
- 性能极差, 每秒新建连接数可能不到2000
5、业务上应该如何避免这个坑
- 使用连接池
- 如果应用程序本身不具备连接池的能力, 使用pgbouncer这类中间连接池
6、业务上避免这个坑牺牲了什么, 会引入什么新的问题
- 增加了管理复杂度
7、数据库未来产品迭代如何修复这个坑
- 内置线程池