在MySQl InnoDB中,btree索引中有多少列是否重要?
例如:
Key1 contains cols (col1, col2, col3)
或者
Key1 contains col1
Key2 contains col2
Key3 contains col3
这有关系吗?谢谢!
答案 0 :(得分:0)
是的,这很重要。
更大的指数是......更大。 :-)你知道,更多的磁盘空间,更慢的读取/更新等等。
事实上,当它们太大时,如果一个较小的替代指数可以解决问题,它们偶尔会被计划者忽略。
答案 1 :(得分:0)
(col1, col2, col3)
上的索引可用于:
where col1 = 1 and col2 = 2 and col3 = 3
where col1 = 1 and col3 = 3
where col1 = 1
但不是为了:
where col2 = 2 and col3 = 3
where col3 = 3
要快速搜索col2
的值,您需要一个以col2.
赞(col2)
而非(col2, col3, col1)
开头的索引。
因此,如果您想独立于col2
搜索col3
或col1
,则三个索引是更优越的选择。