我已经读过,在复合索引中,您应该首先对最具体的列进行排序,但是我的想法是,由于我的理解(或缺乏),最优化的路线是首先覆盖最不具体的索引索引上的映射如何在内存中工作。视觉辅助
例如,如果我有一个vehicles
包含三列、vehicle
和type
的表driver
。
vehicle
可以过滤为 3 个可能的值car
, bike
,helicopter
type
可以过滤到6个值,petrol/automatic
, petrol/manual
, diesel/automatic
, diesel/manual
,, electric/automatic
,electric/manual
driver
是驱动程序的名称(不确定数量的值)
--
如果过滤vehicle
可以返回 1000 个结果,type
500 个结果,driver
比如说 3 个结果,那么最佳索引不应该是vehicle, type, driver
?因为如果索引以开头,driver
那是否意味着在进一步过滤之前扫描一个巨大的type
索引vehicle
?
有人可以帮我澄清一下,并向我解释一下,如果我应该首先订购最具体的列,为什么以及它是如何工作的?