Не винаги е ясно къде да се използват индекси в SQL таблици. Но има някои общи правила, които могат да ви помогнат да вземете решение в повечето случаи.
- Поставете индекс на колони, които се използват в клаузите where
- Поставете индекс на колони, които използвате за присъединяване.
- Опитайте се да не използвате повече от 4-5 индекса за колони в една и съща таблица.
А общите понятия, които трябва да имате предвид, са:
- Всеки индекс, който използвате, ще направи търсенето в тези колони по-бързо.
- Всеки индекс, който добавите, причинявайки вмъкването в тази таблица да става малко по-бавно.
- От предишните две. Ваша отговорност е да решите колко вмъквания и заявки правите в таблици, за да решите дали да използвате индекс и на кои колони или не.
РЕДАКТИРАНЕ
Коментарът на @AndrewLazarus е наистина важен и реших да го добавя към отговора:
- Не използвайте индекси за колони само с няколко различни стойности. Например колона, която съдържа състояние, когато има само няколко състояния, или булева стойност. Причината да не го направите е, че индексът не ви помага наистина, тъй като той ще бъде разделен само на броя на стойностите и тъй като имате само няколко от тях, няма да има реална полза. Таблицата ще заема повече място с индекса и преформата по-бавно при вмъкване, но няма да получите значително по-добра производителност, докато правите заявки