国产探花免费观看_亚洲丰满少妇自慰呻吟_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的結果,因為它的代碼不公開)...所以,至少我現在可以做一些比較:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洪泽县| 新余市| 宜城市| 海口市| 宽城| 蒲城县| 罗江县| 福州市| 乌拉特后旗| 澄迈县| 九寨沟县| 垦利县| 东丽区| 肥西县| 漯河市| 巴南区| 中西区| 科尔| 上林县| 屏东县| 罗平县| 平昌县| 青川县| 凉城县| 兴海县| 宜君县| 潜山县| 长武县| 陈巴尔虎旗| 鄂州市| 邵东县| 聂荣县| 明星| 土默特右旗| 海门市| 龙井市| 新民市| 蓬溪县| 察哈| 崇明县| 黔西县|