У меня есть таблица со следующей структурой ниже:
Id (Int), Telephone_Number (Int), Name (VARCHAR), Address (VARCHAR)
Я хочу создать покрывающий индекс для этого запроса SELECT:
SELECT Id FROM mytable WHERE Telephone_Number = '55442233';
Я понимаю, что закрывающие индексы удаляют объем дискового ввода-вывода, поскольку индексы хранятся в кеше памяти, что увеличивает производительность.
Что касается моего запроса SELECT, правильно ли я говорю, что создание индекса Id не устранит необходимость в дисковом вводе-выводе из-за предложения WHERE, требующего доступа к значению Telephone_Number?
Если да, будет ли составной индекс (Id, Telephone_Number)
работать как индекс покрытия? Или индекс покрытия должен состоять из одного столбца?
Index
, потому что они повышают производительность, потому что они создали b-дерево, ускоряющее поиск. Не имеет ничего общего с кешем памяти. - person Juan Carlos Oropeza   schedule 08.11.2016INDEX(telephone_number, id)
. Поваренная книга i > - person Rick James   schedule 13.11.2016