MySQLMRR和ICP介紹

MRR 「Multi-Range Read」初步理解 對where條件拆分,減少通過索引查到過多無用的數(shù)據(jù);查詢索引頁葉子節(jié)點的主鍵ID后不是直接讀取數(shù)據(jù),而是把滿足條件的主鍵ID進行排序,然后在進行數(shù)據(jù)查找。

10年積累的成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有煙臺免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。



MySQL 5.6開始支持Multi-Range Read(MRR)優(yōu)化。目的是為了減少磁盤的隨機訪問,并且將隨機訪問轉(zhuǎn)化為較為順序的數(shù)據(jù)訪問,這對IO-bound類型的SQL查詢語句可帶來性能極大的提升。MRR優(yōu)化可適用于rangeref,eq_ref類型的查詢


MRR優(yōu)化的好處:


a)MRR使數(shù)據(jù)訪問變得較為順序。在查詢輔助索引時,首先根據(jù)得到的查詢結(jié)果按照主鍵進行排序,并按照主鍵排序的順序進行書簽查找


b)減少緩沖池中頁被替換的次數(shù)


c)批量處理對鍵值的查詢操作


對于InnoDB和MyISAM存儲引擎的范圍查詢和JOIN查詢操作,MRR工作方式如下


a)將查詢得到的輔助索引鍵值存放在一個緩存中,這是緩存中的數(shù)據(jù)是根據(jù)輔助索引鍵值排序的


b)將緩存中的鍵值根據(jù)RowID進行排序


c)根據(jù)RowID的排序順序來訪問實際的數(shù)據(jù)文件



Index Condition Pushdown (ICP)是MySQL用索引去表里取數(shù)據(jù)的一種優(yōu)化。如果禁用ICP,引擎層會穿過索引在基表中尋找數(shù)據(jù)行,然后返回給MySQL Server層,再去為這些數(shù)據(jù)行進行WHERE后的條件的過濾。ICP啟用,如果部分WHERE條件能使用索引中的字段,MySQL Server 會把這部分下推到引擎層。存儲引擎通過使用索引條目,然后推索引條件進行評估,使用這個索引把滿足的行從表中讀取出。ICP能減少引擎層訪問基表的次數(shù)和MySQL Server 訪問存儲引擎的次數(shù)。


ICP 「Index Condition Pushdown」初步理解在通過輔助索引查詢時進一步過濾where其他條件,前提是where條件的數(shù)據(jù)在該索引中可以獲取到。


備注個人理解,這兩種優(yōu)化前提都依賴索引,ICP依賴的是聯(lián)合索引。

本文題目:MySQLMRR和ICP介紹
標題來源:http://muchs.cn/article14/jpicge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、標簽優(yōu)化全網(wǎng)營銷推廣、網(wǎng)站收錄用戶體驗、網(wǎng)站維護

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營