我使用civetweb作爲(websocket)服務器。當我收到數據時,我有一些處理程序,它將查詢mysql。這些會在每次請求時產生一個線程。如何實現連接池?
到現在爲止,我只是在數據庫中使用了一個mysql連接,我在程序的開始安裝了這個連接,並結合了mongoose庫。但是對於線程請求,這會讓我很頭疼,因爲從執行mysql_select()到mysql_store_result()之前,mysql不是線程安全的。我曾嘗試在這些mysql函數週圍添加一個互斥量,但隨後perfomce會降低十倍(從〜750個請求/秒到〜75個請求/秒)。
處理這個問題的正確方法是什麼?我聽說過一個'連接池',但很難找到一些簡單的谷歌示例(或者將我的頭圍繞一個理智的實現)。
似乎不太可能我是第一個遇到這樣的問題的人:)。