|
一口气看完了挺实用的.
不过想做点补充,就是对复合索引的操作,可能没有注意到的问题.
上文已提到了对复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替,
但是并没有说如果万一真的使用了复合索引的时候,需要注意的问题.
-------------------------------------------------------------------------------------
例如有个复合索引(cloA, cloB, cloC),
下面进行查询:select * from tableName where cloA = ? and cloB = ? and cloC = ?
这查询,没有疑问的会根据索引来查询.
那么接着问:
select * from tableName where cloA = ? and cloC = ?
这样的查询会中索引么?
答案:没有.
再查:select * from tableName where cloA = ? and cloB = ?
这样的会中索引么?
答案:YES
-------------------------------------------------------------------------------------
再问下去也无意义了,总结一下,就是查询时需要注意复合索引的先后顺序.
就上面的例子而言,
单个字段查询,除了对cloA进行查会中索引后,其他的都不会中.
双字段查询,除了(cloA, cloB)这种组合会中的,其他的也不中.
三字段查询,这个中啦,呵呵..这复合索引本来就只有三个字段嘛...
更多字段的复合索引,也是同理的.
|