MariaDB中的thread pool詳細介紹和使用方法
Thread pool是什么
MySQL是每個連接上來都要創(chuàng)建一個線程來執(zhí)行語句。這樣每一個新的連接進來即會創(chuàng)建一個新的線程,這種動作對MySQL本身壓力比較大。Threadpool是提供一種線程代理的模型執(zhí)行每個連接的語句。而MySQL內部維護一個可能接受的線程總數,減少線程太多在CPU切換等方面的壓力。
使用Threadpool的好處
1.使用線程代理的模型在連接數已知可控的情況下,提前創(chuàng)建好過線程并利用操作系統(tǒng)的threadpool技術維護,能減少很多開銷。
2.盡可能的使用操作系統(tǒng)的線程方面的管理,把線程管理開銷降到最低。 3. 利用
thread_pool_max_threads控制資源使用
什么情況下Thread Pool作用比較小:
1.并發(fā)太高及有長的語句操作。 如:內部threadpool的總數為:10個,外面并發(fā)來了1000個請求,現在都來爭用這10個內部線程,這個開銷也比較重。同樣道理加大threadpool后,innodb內部的并發(fā)也會受到限制。
2.突發(fā)的大量連接。這個情況下threadpool還有一定的作用,但是效果不明顯了。如果為了防止大量的連接進來。可以考慮增加thread_pool_min_threads及thread_pool_idle_timeout的值,讓平時也維護一個大的threadpool
3.高并發(fā)的環(huán)境,有可能簡單的查詢也會變慢。雖然select 1;這樣的查詢很簡單應該會很快完成。但在threadpool的下面也需要排隊等待從theadpool得到可用的線程才能執(zhí)行。
使用方法:
目前支持threadpool的有MariaDB, Percona, 官方MySQL的一個收費功能。配置啟用。
在my.cnf
復制代碼 代碼如下:
[mysqld]
#thread pool
thread_handling=pool-of-threads
相關文章:
1. CentOS6.7系統(tǒng)中編譯安裝MariaDB數據庫2. CentOS 7中成功安裝MariaDB的方法教程3. Windows Server 2016 服務器配置指南 之 MariaDB數據庫環(huán)境搭建方法4. 記一次mariadb數據庫無法連接5. MariaDB配置雙主復制方案6. MariaDB性能調優(yōu)工具mytop的使用詳解7. Window7安裝MariaDB數據庫及系統(tǒng)初始化操作分析8. MariaDB的安裝與配置教程9. MariaDB中1045權限錯誤導致拒絕用戶訪問的錯誤解決方法10. Centos7 下mysql重新啟動MariaDB篇