top
Loading...
7.2.6.1.索引合并交集訪問算法
7.2.6.1. 索引合并交集訪問算法

該訪問算法可以用于當WHERE子句結合AND被轉換為不同的關鍵字的幾個范圍條件,每個條件為下面之一:

·         以這種形式,即索引有確切的N部分(即包括了所有索引部分)

·                key_part1=const1 AND key_part2=const2 ... AND key_partN=constN

·         任何InnoDBBDB表的主鍵的范圍條件。

下面是一些例子:

SELECT * FROM innodb_table WHERE primary_key < 10 AND key_col1=20;

 

SELECT * FROM tbl_name

WHERE (key1_part1=1 AND key1_part2=2) AND key2=2;

索引合并交集算法同時對所有使用的索引進行掃描,并產生從合并的索引掃描接收的行序列的交集。

如果使用的索引包括查詢中使用的所有列,所有表記錄均不搜索,并且在這種情況下EXPLAIN的輸出包含Extra字段中的Using index。下面是一個此類查詢的例子:

SELECT COUNT(*) FROM t1 WHERE key1=1 AND key2=1;

如果使用的索引未包括查詢中使用的所有列,只有滿足所有使用的關鍵字的范圍條件才搜索所有記錄。

如果某個合并條件是InnoDBBDB表的主鍵的一個條件,不用于記錄查詢,但用于過濾使用其它條件搜索的記錄。

作者:mysql.com
來源:http://dev.mysql.com/doc/refman/5.1/zh/optimization.html
北斗有巢氏 有巢氏北斗