Jawaban singkat:
Indeks mempercepat SELECT
's dan memperlambat INSERT
's.
Biasanya lebih baik memiliki indeks, karena mempercepat select
lebih dari memperlambat insert
.
Pada UPDATE
indeks dapat mempercepat sesuatu meningkat jika bidang yang diindeks digunakan dalam WHERE
klausa dan memperlambat segalanya jika Anda update
salah satu bidang yang diindeks.
Bagaimana Anda tahu kapan harus menggunakan indeks
Tambahkan EXPLAIN
di depan SELECT
pernyataan.
Seperti itu:
EXPLAIN SELECT * FROM table1
WHERE unindexfield1 > unindexedfield2
ORDER BY unindexedfield3
Akan menunjukkan kepada Anda berapa banyak pekerjaan yang harus dilakukan MySQL pada setiap bidang yang tidak diindeks.
Menggunakan info itu Anda dapat memutuskan apakah perlu menambahkan indeks atau tidak.
Jelaskan juga dapat memberi tahu Anda apakah lebih baik untuk menjatuhkan dan mengindeks
EXPLAIN SELECT * FROM table1
WHERE indexedfield1 > indexedfield2
ORDER BY indexedfield3
Jika sangat sedikit baris yang dipilih, atau MySQL memutuskan untuk mengabaikan indeks (melakukannya dari waktu ke waktu) maka Anda sebaiknya menghapus indeks, karena adalah memperlambat insert
s tetapi tidak mempercepat select
's.
Kemudian lagi, mungkin juga pernyataan pilih Anda tidak cukup cerdas.
(Maaf atas kerumitan jawaban, saya mencoba membuatnya sederhana, tetapi gagal).
Tautan:
indeks MySQL - apa itu praktik terbaik?