Я пытаюсь лучше понять индексы, когда использую Mysql.Одна из проблем заключается в том, что мне все еще трудно определить, какой тип индексов мне следует использовать, например, отдельные индексы, многостолбцовые индексы, покрывающие индексы и т. Д.какой тип индексов использовать?Когда я проектирую свой макет базы данных, я не знаю точно, какие все запросы будут использоваться, пока приложение не будет построено.Для одной таблицы я мог бы запросить одно или несколько полей, а также запросить ее для отчетов.Поэтому, если я сделаю запрос к таблице следующим образом:
SELECT * FROM table1 WHERE field1 = this AND field2 = that GROUP BY field3 ORDER BY field4
Буду ли я создавать индекс из нескольких столбцов для field1, field3, field3 и field4?
И что делать, если у меня другой запрос натакая же таблица, как:
SELECT * FROM table1 WHERE field1 = this and field3 = that
Если бы у меня был индекс из нескольких столбцов из первого запроса, будет ли этот же индекс работать для второго запроса, поскольку field1 находится в самом дальнем левом углу индекса?
И другой вопрос, который у меня возник, был: есть ли определенный порядок, в котором mysql ищет индексы?Таким образом, для нескольких столбцов или индекса покрытия я должен добавить индексы в порядке предложения where?Тогда что-нибудь в предложении группы тогда что-нибудь в предложении заказа?Или mysql автоматически делает это?
Извините за все вопросы, просто ищу помощь по этому вопросу.