MySQL 9.0 版本注意事項
注意
MySQL Enterprise 執行緒池是 MySQL Enterprise Edition 中包含的延伸功能,屬於商業產品。若要深入瞭解商業產品,請參閱 https://mysql.dev.org.tw/products/。
MySQL Enterprise Edition 包含 MySQL Enterprise 執行緒池,使用伺服器外掛程式實作。MySQL 伺服器中的預設執行緒處理模型是使用每個用戶端連線一個執行緒來執行陳述式。隨著更多用戶端連線至伺服器並執行陳述式,整體效能會降低。執行緒池外掛程式提供另一種執行緒處理模型,旨在減少額外負荷並提升效能。此外掛程式實作一個執行緒池,藉由有效地管理大量用戶端連線的陳述式執行緒來提高伺服器效能。
執行緒池解決了每個連線使用一個執行緒的模型中的數個問題
在高度並行的執行工作負載中,過多的執行緒堆疊會使 CPU 快取幾乎無用。執行緒池會促進執行緒堆疊重複使用,以盡量減少 CPU 快取佔用空間。
在過多執行緒並行執行的情況下,內容切換額外負荷會很高。這也對作業系統排程器帶來挑戰。執行緒池會控制作用中執行緒的數量,以將 MySQL 伺服器內的平行處理程度保持在它可處理且適用於 MySQL 執行所在伺服器主機的層級。
過多交易並行執行會增加資源爭用。在
InnoDB
中,這會增加持有中央互斥鎖的時間。執行緒池會控制交易的啟動時間,以確保不會有過多交易並行執行。