Indeks Berasaskan Fungsi dalam MySQL
Tidak seperti Oracle, MySQL sememangnya tidak menyokong indeks berasaskan fungsi. Walau bagaimanapun, terdapat alternatif untuk dipertimbangkan.
Bahagian Peneraju Lajur
MySQL membolehkan anda mengindeks bahagian utama lajur menggunakan sintaks berikut:
create index name_first_five on cust_table (name(5));
Ini mencipta indeks menggunakan lima aksara pertama "nama" lajur.
Pencetus dan Lajur Tambahan
Untuk fungsi yang lebih kompleks, anda boleh membuat lajur berasingan dengan data yang diindeks dan menggunakan pencetus sisipan/kemas kini untuk memastikan populasinya yang betul .
Contoh
Pertimbangkan senario di mana anda ingin mengindeks subrentetan lajur. Anda boleh membuat lajur baharu dan menggunakan pencetus seperti berikut:
ALTER TABLE cust_table ADD COLUMN substring VARCHAR(255); CREATE TRIGGER update_substring AFTER INSERT OR UPDATE ON cust_table FOR EACH ROW SET NEW.substring = SUBSTRING(NEW.id, 1, 8);
Perbandingan dengan Indeks Fungsian
Walaupun pendekatan ini mencapai kesan yang sama seperti indeks berfungsi, pendekatan ini memperkenalkan lebihan data tambahan. Walau bagaimanapun, ia juga membolehkan anda mentakrifkan fungsi yang lebih kompleks dan memastikan ketekalan data melalui pencetus.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencapai Kesan Indeks Berasaskan Fungsi dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!