我使用civetweb作为(websocket)服务器。当我收到数据时,我有一些处理程序,它将查询mysql。这些会在每次请求时产生一个线程。如何实现连接池?
到现在为止,我只是在数据库中使用了一个mysql连接,我在程序的开始安装了这个连接,并结合了mongoose库。但是对于线程请求,这会让我很头疼,因为从执行mysql_select()到mysql_store_result()之前,mysql不是线程安全的。我曾尝试在这些mysql函数周围添加一个互斥量,但随后perfomce会降低十倍(从〜750个请求/秒到〜75个请求/秒)。
处理这个问题的正确方法是什么?我听说过一个'连接池',但很难找到一些简单的谷歌示例(或者将我的头围绕一个理智的实现)。
似乎不太可能我是第一个遇到这样的问题的人:)。