我在某处读到了mysql中的列顺序很重要。我相信他们指的是索引列。
问题:如果列顺序很重要,何时以及为何重要?
我问的原因是因为我在mysql中有一个类似于下面的表。 主要索引在左侧,我在最右边有一个索引。这不好吗? 它是一个MyISAM表,主要用于选择(无插入,删除或更新)。
-----------------------------------------------
| Primary index | data1| data2 | d3| Index |
-----------------------------------------------
| 1 | A | cat | 1 | A |
| 2 | B | toads | 3 | A |
| 3 | A | yabby | 7 | B |
| 4 | B | rabbits | 1 | B |
-----------------------------------------------
答案 0 :(得分:4)
列顺序仅在定义索引时很重要,因为这会影响索引是否适合用于执行查询。 (所有RBDMS都是如此,而不仅仅是MySQL)
e.g。
按照该顺序在列MyIndex(a, b, c)
上定义的索引。
诸如
之类的查询select a from mytable
where c = somevalue
可能不会使用该索引来执行查询(取决于几个因素,如行数,列选择性等)
然而,它很可能会选择使用定义为MyIndex2(c,a,b)
更新:请参阅use-the-index-luke.com(感谢格雷格)。