Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mencapai Kesan Indeks Berasaskan Fungsi dalam MySQL?

Bagaimanakah Saya Boleh Mencapai Kesan Indeks Berasaskan Fungsi dalam MySQL?

Barbara Streisand
Lepaskan: 2024-12-21 11:20:12
asal
967 orang telah melayarinya

How Can I Achieve the Effect of Function-Based Indexes in MySQL?

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));
Salin selepas log masuk

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);
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan