1.回表
回表就是資料庫根據索引找到了我們需要的行,但是還需要根據其他條件來進一步過濾資料。
解決方法:建立復合索引,但是也不能把所有的字段建立索引,儲存代價會很大。
2.索引覆蓋
索引覆蓋就是在我們需要查詢的列上建立索引,覆蓋我們需要的字段。一般都是復合索引。
3.最左匹配
最左匹配是針對復合索引的,比如復合索引(a、b、c),實際上就建立了索引a、索引ab、索引abc三個索引,這樣可以減少開銷,如果乙個sql只使用a,會根據特定的演算法快速查詢到某個符合條件的索引,乙個sql只使用了b,從索引中的第乙個資料乙個個的查詢到最後乙個資料,效率不高。
4.索引下推
索引下推就是在根據索引查詢之後,還需要再次查詢的。需要查詢的列不都是有索引的,但是篩選條件有索引。
mysql 5 回表 覆蓋索引 最左匹配原則
回表 通過上一章的介紹,我們知道索引可以分為主鍵索引和非主鍵索引。非主鍵索引的葉子節點儲存的是主鍵索引的值。我們在通過非主鍵索引查詢時候,需要先在非主鍵索引樹找到主鍵值,然後再到主鍵索引樹根據主鍵值去查詢出整行資料,這個過程中,回到主鍵索引樹搜尋的過程,我們稱為回表 覆蓋索引 建立一張表 mysql...
MySQL資料庫索引的最左匹配原則
目錄 建立三個欄位的聯合索引 聯合索引 a,b,c 相當於建立了索引 a a,b a,b,c 先給出結論 a可以命中聯合索引 a,b,c c無法命中,所以ac組合無法命中聯合索引。1.建立abc聯合索引 provincwww.cppcns.come,city,district ac索引查詢 sele...
mysql 最左匹配 聯合索引
mysql建立多列索引 聯合索引 有最左字首的原則,即最左優先,如 如果有乙個2列的索引 col1,col2 則已經對 col1 col1,col2 上建立了索引 如果有乙個3列索引 col1,col2,col3 則已經對 col1 col1,col2 col1,col2,col3 上建立了索引 總...