Индекс действительно представляет собой дополнительный набор записей. Больше ничего.
Вещи, которые делают индексы доступ быстрее является:
- Внутри есть больше шансов, что двигатель поместить в буфере индекса, чем целые строки таблиц
- индекс меньше так, чтобы разобрать это означает, что чтение меньше блоков жесткого диска
- индекс сортируется уже, поэтому найти данное значение легко
- в случае быть не равно нулю, это даже быстрее (по разным причинам, но самая важная вещь, чтобы знать, что двигатель d oesn't магазин нулевых значений в индексах)
Чтобы узнать, является ли полезным индекс не так легко угадать (очевидно, я не говорю о первичном ключе) и должен быть исследован. Вот некоторые коллеги, когда это может замедлить ваши операции:
- Это замедлит вставки и обновления индексированных полей
- Это требует большего технического обслуживания: статистические данные, должны быть построены для каждого индекса, поэтому вычисления могут занять значительно больше времени, если вы добавите много индексов.
- Это может замедлить запросы, когда статистика не обновляется. Этот эффект может быть катастрофическим, потому что двигатель действительно «ошибочно»
- Он может замедлить работу, когда запрос неадекватен (в любом случае индексы не должны быть правилом, а исключением: нет индекса, за исключением случаев, когда есть желание Я знаю, что обычно в каждой таблице есть хотя бы один индекс, но он пришел после расследований) Мы могли бы прокомментировать этот последний момент много, но я думаю, что каждый случай особенный, и многие примеры этого уже существуют в Интернете.
Теперь о вашем вопросе «Все основные ключи ключа по умолчанию?», Я должен сказать, что оптимизатор не работает. Когда в таблице указаны различные индексы, более эффективная комбинация индексов будет скомпилирована с данными на лету и некоторыми другими статическими данными (статистика индексов), чтобы достичь лучших результатов. По умолчанию нет индекса по умолчанию, каждая ситуация лишается другого результата.
С уважением.
Спасибо !!!!!!!!!!!!!!!! ~ – leon