国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

大幅優化MySQL查詢性能的奇技淫巧

2024-07-24 12:45:53
字體:
來源:轉載
供稿:網友

 回顧 MySQL / InnoDB 的改善歷史。你能很容易發現。在MySQL 5.6穩定版本中從來沒有在read-only 這么快的提速,它很容易搞懂,以及在read-only(RO)有著良好的擴張性。也很期待它在read+write(RW)上達到一個較高水平。(特別是在讀取數據是數據庫主要工作的時候)

然而。我們對于RO在 MySQL 5.6的表現也十分的高興,在5.7這個版本中,主要工作集中在 read+write (RW)上, 因為在大數據的處理上還沒能達到我們的期望。但是RW依賴RO下。能夠再次提高速度。 InnoDB 團隊通過不斷的改進,強烈的推進優化著5.7這個版本的每秒的性能。

下面就按順序為大家講解

事實上,在MySQL中只讀工作量控制內部鏈接的方式有以下兩種:

    用單個表:MDL,trx_sys和lock_sys(InnoDB)     多表:trx_sys和lock_sys(主要是InnoDB)

任何很快的單表范圍測試的工作量主要由于MDL鏈接導致鎖住。而多表將會由于InnoDB內部構件限制(不同的表將由不同的MDL鎖保護,所以這種情況下MDL中的鏈接瓶頸將會降低)。但是同樣,也要看工作量的大小--一個比一般多的只讀工作測量將會在MySQL5.6中表現的會更好(如Sysbench OLTP_RO),同時在工作量少而快的查詢(如Sysbench Point-Selects(用外鍵去取一個記錄))將會使所有鏈接變得困難,而且只能在16核-HT中測量,而在32核中表現很差..但是任何如Point-Select測試的工作量將在所有MySQL內部構件一起工作是會讓你看到可能達到最大的性能(開始用SQL解析器,終止與取行值)..在你給定的MySQL版本和給定的HW配置下,這也可能達到最大SQL 查詢/每秒(QPS)率。

在Mysql5.6上我們獲得的最佳結果是25萬個查詢每秒,這也是那段時間Mysql/InnoDb上使用SQL語句查詢得到的最好的結果了。

當然,只有在使用‘只讀事務'功能才能達到這么高速度(Mysql5.6上的新功能);另外,需要使用AUTOCOMMIT=1,否則CPU就會被輕易地浪費在啟動事務、提交事務上,你會實際上損失系統的整體性能。

因此,在Mysql5.7上介紹的第一個改進是‘只讀事務的自動發現'(實際上每個InnoDb事務都被認為是只讀的直到有一個DML聲明在此之外)功能---,這很大程度上簡化了只讀事務功能,節省了用戶和開發者的時間,他們不用再去管理是否采用只讀事務功能。但是,使用這個功能你仍然不能達到Mysql潛在的最佳每秒查詢率,因為CPU時間還是浪費在事務的開啟、結束狀態處理過程當中。

同時,Percona用不同的的方案來解決“事務列表”管理(TRX-列表)及在InnoDB中trx_sys互斥鏈接慢的問題。Percona的解決方案在用事務處理Point-Selects高負載時能表現良好,但MySQL5.7表現一般(但我不會公布5.7的結果,因為它的代碼不公開)...所以,至少我現在可以做一些比較:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 绥滨县| 五莲县| 岑溪市| 靖西县| 库尔勒市| 亚东县| 宝鸡市| 岢岚县| 中方县| 普定县| 青冈县| 东港市| 宝鸡市| 都江堰市| 寿光市| 祥云县| 抚远县| 嘉荫县| 天柱县| 肥东县| 饶阳县| 泸西县| 乡宁县| 庐江县| 北流市| 垫江县| 阜平县| 镇沅| 家居| 育儿| 安仁县| 会理县| 伊川县| 民丰县| 和政县| 衢州市| 平利县| 东辽县| 盐津县| 德格县| 永仁县|