Order of index on multiple columns

database, sql

Solution

In the example you give, the column order does not matter.

It would matter if you order on a column; an index on `(col1,col2)` can be used for `ORDER BY col1, col2` but not for `ORDER BY col2, col1`.

For `WHERE` clauses, an index on `(col1, col2)` works for `WHERE col1 = 1 AND col2 = 1`. It also works for `WHERE col1 = 1`. But it can't help with `WHERE col2 = 1`.

Problem

Just a simple question, but does the order of your index matter when it spans over multiple columns? For example, taking the query: ``` SELECT * FROM my_table WHERE (column_1 = 1 AND column_2 = 2) ``` If I want to add an index for a query like this, does it matter if my index is created like this: ``` CREATE INDEX my_index ON my_table (column_1, column_2) ``` Or like this: ``` CREATE INDEX my_index ON my_table (column_2, column_1) ``` Thanks for the help!

Original source

Related problems