本文翻译自 https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing
翻译时可能会有不精准的地方,此处仅供参考,望注意!!!
配置连接池是开发人员经常出错的问题。在配置池时需要理解的原则有几个,可能是反直觉的。
10,000个同时前端用户
想象一下,你有一个网站虽然可能不是Facebook规模,但仍然经常有10,000个用户同时发出数据库请求 - 每秒约占20,000个交易。你的连接池应该有多大?您可能会感到惊讶的是,问题不是多大而是多么小!
观看来自Oracle真实世界表演小组的这段简短视频,进行大开眼界演示(约10分钟):
{Spoiler Alert}如果您没有观看视频。哦加油!观看它然后回到这里。
您可以从视频中看到,在没有任何其他更改的情况下,单独减少连接池大小会将应用程序的响应时间从大约100毫秒减少到大约2毫秒 - 超过50倍的改进。
但为什么?
我们似乎最近在计算的其他部分已经理解,越少越好。为什么只有4个线程的nginx Web服务器可以大大超过100个进程的Apache Web服务器?如果你回想一下计算机科学101,这不是很明显吗?
即使是具有一个CPU内核的计算机也可以“同时”支