|
1: Mysq查詢優(yōu)化器采用了“選取-投影-聯(lián)結(jié)”策略來處理查詢,即先根據(jù)有關(guān)的限制條件進行選取(select操作)以減少將要處理的元祖的個數(shù),再進行投影(對應(yīng) 關(guān)系代數(shù)里的投影操作)以減少被選取元祖里的屬性(字段)的個數(shù),最后根據(jù)連接條件生成最終的查詢結(jié)果。 它使用的規(guī)則如下: * 通過計算where子句里的表達式來橫向排除多余的數(shù)據(jù) *只保留在屬性(字段)清單里列出來的,以及在最后執(zhí)行聯(lián)結(jié)子句時還需要用到的屬性(字段),其他數(shù)據(jù)全部排除。 *根據(jù)聯(lián)結(jié)條件生成最終的查詢結(jié)果
2:緩存和緩沖區(qū) 2.1 表緩存 表緩存是為了最大限度的減少打開、讀取和關(guān)閉表(磁盤上的FRM文件)的開銷而創(chuàng)建的。因此,表緩存的主要用途就是把關(guān)于表的元數(shù)據(jù)保存在內(nèi)存里。這樣可以大大加快有關(guān)線程讀取表結(jié)構(gòu)信息的速度而無需每次都打開文件。 2.2 記錄緩存 是為了加快存儲引擎的順序讀性能而創(chuàng)建的。記錄緩存只用在表掃描期間。記錄緩存可以大幅度的提高順序讀/寫(稱為引用的局域性)的性能,所以它通常與MyISAM存儲引擎配合使用
2.3 鍵緩存 其實就是一個用來緩存索引數(shù)據(jù)的緩沖區(qū),其內(nèi)容是一個來自索引文件(B-)樹的數(shù)據(jù)塊,只有MyISAM表(磁盤上的.MYI文件)才能使用鍵緩存,索引本身被封裝在鍵緩存結(jié)構(gòu)里,這些結(jié)構(gòu)在內(nèi)存里被存儲為一個鏈表。
2.4 權(quán)限緩存 用來存放用戶賬戶的授權(quán)數(shù)據(jù)
2.5 主機名緩存 是另外一種輔助性的緩存機制,與權(quán)限緩存很相似。
|
|
|