Mysql

mysql多執行緒用於單個查詢

  • January 2, 2021

我有大小為 8GB 的​​大數據庫,並且在這個數據庫中有 900 萬個聯繫人。當我們嘗試檢索所有聯繫人時,需要將近 1 或 2 小時(在某些情況下會導致超時)來檢索所有聯繫人以執行單個查詢。另外我有 8 個 CPU 和 24GB RAM,Xeon 處理器,mysql 程序不會分佈在 8 個 CPU 上。我的問題是,我們是否可以為單個查詢啟用多執行緒。

等待您的回复

MyISAM 和 InnoDB 都沒有多執行緒查詢實現。其他 XtraDB、TokuDB 也沒有。這是 MySQL 長期存在的問題和局限性。我不知道限制是在 MySQL 伺服器內,而是在儲存引擎實現中。從來沒有人做過…

我目前正在評估列儲存 InfiniDB 和 Infobright IEE。它們都支持多 CPU 查詢,並且差異很大(由於多種原因,但 CPU 是顯而易見的一個)。

您可能想查看Shard Query,它是 MySQL 的代理,它將您的查詢拆分為多個查詢,在並行程序上執行它們並返回聚合結果。

我最近讀了一篇很好的部落格文章,介紹了一些解決方法;

http://www.mysqlperformanceblog.com/2014/01/07/increasing-slow-query-performance-with-parallel-query-execution/

引用自:https://dba.stackexchange.com/questions/56522