1
我在Python 3.5中使用mysqlclient v1.3.10。連接到數據庫後,您將獲得一個連接對象,從中可以獲得用於運行查詢的遊標對象。MySQLdb連接和遊標對象可以安全地使用多線程嗎?
這些對象是否是線程安全的(即,我可以創建一組然後在多個不同的python線程之間共享和使用它們)?
我在Python 3.5中使用mysqlclient v1.3.10。連接到數據庫後,您將獲得一個連接對象,從中可以獲得用於運行查詢的遊標對象。MySQLdb連接和遊標對象可以安全地使用多線程嗎?
這些對象是否是線程安全的(即,我可以創建一組然後在多個不同的python線程之間共享和使用它們)?
看來你不能。該MySQLdb documentation狀態(向下滾動遠一點threadsafety):
這樣做的一般結果是:不要 線程之間共享連接。這真的不值得你或我的努力,最後, 可能會損害性能,因爲MySQL服務器爲每個連接運行單獨的 線程。您當然可以做一些事情,例如在池中緩存 連接,並在 時間將這些連接提供給一個線程。如果讓兩個線程同時使用連接,MySQL客戶端庫可能會掛起並死亡。你一直在 警告。