Если я правильно понял, когда мы создаем индекс, у нас таблица изменяет порядок записей внутри себя сортируя их по указанным столбцам
CREATE INDEX prod_idx ON products (name, brand, price)
Т.е. в данном случае сразу она отсортирует все записи name в алфавитном порядке, после уже эти записи отсортирует по brand и так же по price от убывания к возрастания
Как если бы мы сделали выборку по умолчанию
SELECT * FROM products ORDER BY name, brand, price
И один индекс
CREATE INDEX prod_idx ON products (name, brand, price)
равен тому, если бы мы создали три индекса в такой последовательности
CREATE INDEX name_idx ON products (name)
CREATE INDEX brand_idx ON products (brand)
CREATE INDEX price_idx ON products (price)
Которые бы по очереди друг за другом добавляли правило сортировки в таблице, верно?
И в нашем случае при редактировании записи нашим
INSERT
, он сработает медленно только в том случае, если мы в обновлении затронем один из перечисленных индексированных полей?
Причем при изменении name обновление будет происходить дольше, чем при изменении
price
, потому что у нас
price
последняя в нашей очереди индексов по сортировке?