Разница между ними заключается в следующем. Предположим, у вас есть столбцы A, B, C и вы поместили один комплексный индекс именно в этом порядке. теперь, когда вы делаете
SELECT * from table where A = .. AND B = .. AND C =
тогда будет использоваться индекс, и это наиболее эффективное использование этого индекса.
если у вас есть запрос
SELECT * from table where A = ..
тогда индекс все равно будет использоваться. Однако idnex не будет (обновлено благодаря комментарию: или только частично для 2-го и 3-го примера) использоваться в:
SELECT * from table where B ..
SELECT * from table where A = .. AND C = .. AND B = ..
SELECT * from table where A = .. AND C = ..
однако снова будет использоваться в:
SELECT * from table where A = .. AND B = ..
надеюсь, это поможет. Порядок КЛЮЧ здесь. Ну и конечно то что нужно. Если у вас есть три запроса, например
SELECT * ... where A
SELECT * ... where B
SELECT * ... where C
тогда, конечно, создайте 3 индекса в одном столбце. однако, если у вас есть запросы с AND, сначала убедитесь, что они имеют тот же порядок, а затем продолжайте и сделайте 1 индекс для 3 столбцов