Tidak selalu jelas di mana menggunakan indeks dalam tabel SQL. Namun ada beberapa aturan umum yang mungkin dapat membantu Anda memutuskan dalam banyak kasus.
- Menempatkan indeks pada kolom yang digunakan pada klausa where
- Letakkan indeks pada kolom yang Anda gunakan untuk bergabung.
- Cobalah untuk tidak menggunakan lebih dari 4-5 indeks pada kolom dalam tabel yang sama.
Dan konsep umum yang harus Anda ingat adalah:
- Indeks apa pun yang Anda gunakan akan membuat penelusuran di kolom tersebut lebih cepat.
- Indeks apa pun yang Anda tambahkan menyebabkan penyisipan ke tabel ini menjadi sedikit lebih lambat.
- Dari dua sebelumnya. Anda bertanggung jawab untuk memutuskan berapa banyak penyisipan dan kueri yang Anda lakukan pada tabel untuk memutuskan apakah akan menggunakan indeks dan pada kolom mana atau tidak.
EDIT
@AndrewLazarus komentar sangat penting dan saya memutuskan untuk menambahkannya ke jawaban:
- Jangan gunakan indeks pada kolom dengan hanya sedikit nilai yang berbeda. Misalnya, kolom yang menampung status, ketika hanya ada beberapa status, atau nilai boolean. Alasan untuk tidak melakukannya adalah karena indeks tidak terlalu membantu Anda karena hanya akan dibagi dengan jumlah nilai, dan karena Anda hanya memiliki sedikit, tidak akan ada manfaat nyata. Tabel akan menghabiskan lebih banyak ruang dengan indeks dan terbentuk lebih lambat saat penyisipan, tetapi Anda tidak akan mendapatkan kinerja yang lebih baik secara signifikan saat melakukan kueri