2017-06-29 93 views
0

我有一個列有指數型的Hash與具有1..128MYSQL約哈希索引類型索引是忽略有時

值篩選

CREATE INDEX indexName ON myTable (studentType) USING HASH; 

有時候,我們有這樣的查詢。

Select * from myTable where studentType =1; 
Select * from myTable where studentType =2; 

這裏使用索引很好,但我讀的文檔和一些東西,真正吸引我的注意,我想,也許我沒有得到很好。

Only whole keys can be used to search for a row. (With a B-tree index, any leftmost prefix of the key can be used to find rows.) 

這是否意味着,如果我有這樣的查詢..

Select * from myTable where studentType =2 and status=121; 

這裏MySQL是忽略了散列索引「studentType」?因爲where子句使用列索引之外的其他列?或者它在例子中說了什麼。

這真的是我關心的問題。

對不起,如果問題很簡單。

此致敬禮。

回答

0

InnoDB沒有HASH索引。你的聲明變成了BTree

這些B樹索引無論是工作得很好,你最後SELECT

INDEX(studentType, status) 
INDEX(status, studentType)