Tidak, tidak akan.
Secara teoritis, indeks pada (site, product, value, id)
memiliki semua yang diperlukan untuk membuat indeks pada setiap subset bidang ini (termasuk indeks pada (product, value, id)
dan (value, id)
).
Namun, membangun indeks dari indeks sekunder tidak didukung.
Pertama, MySQL
tidak mendukung pemindaian indeks penuh yang cepat (yaitu memindai indeks dalam urutan fisik daripada logis), sehingga membuat jalur akses indeks lebih mahal daripada pembacaan tabel. Ini bukan masalah untuk InnoDB
, karena tabel itu sendiri selalu berkelompok.
Kedua, urutan record dalam indeks ini benar-benar berbeda sehingga record tetap harus diurutkan.
Namun, masalah utama dengan kecepatan pembuatan indeks di MySQL
adalah bahwa itu menghasilkan pesanan di situs (hanya memasukkan catatan satu per satu ke dalam B-Tree
) daripada menggunakan sumber yang telah dipilih sebelumnya. Seperti yang disebutkan @Daniel, pembuatan indeks cepat memecahkan masalah ini. Ini tersedia sebagai plugin untuk 5.1
dan sudah diinstal sebelumnya di 5.5
.