Pengindeksan Berasaskan Fungsi dalam MySQL
Dalam pangkalan data Oracle, adalah mungkin untuk mengindeks data berdasarkan fungsi, seperti mengekstrak subrentetan daripada lajur menggunakan SUBSTRING(id,1,8). Ciri mudah ini menimbulkan persoalan sama ada MySQL menawarkan kefungsian yang serupa.
Pendekatan MySQL
MySQL tidak menyokong pengindeksan berasaskan fungsi dalam pengertian tradisional. Malah versi terbaru MySQL, termasuk 5.6, tidak mempunyai keupayaan ini. Walau bagaimanapun, keluaran terbaru seperti MySQL 8.0.13 dan ke atas memperkenalkan indeks berfungsi, membenarkan pengindeksan fleksibel berdasarkan fungsi dan ungkapan.
Alternatif untuk Versi MySQL Lama
Untuk Versi MySQL sebelum 8.0.13, terdapat pilihan terhad untuk pengindeksan berdasarkan hasil fungsi. MySQL menyokong penggunaan aksara terkemuka dalam lajur untuk pengindeksan, tetapi ia tidak dapat mengendalikan ungkapan yang lebih kompleks atau bermula dari kedudukan aksara tertentu.
Untuk mengatasi had ini, anda boleh membuat lajur berasingan yang mengandungi data boleh diindeks. dan gunakan pencetus untuk mengekalkan penyegerakannya dengan lajur asal. Walaupun ia tidak mematuhi prinsip normalisasi pangkalan data, ia mencapai kesan yang sama dengan memastikan data disegerakkan melalui pencetus.
Kesimpulan
Walaupun MySQL tidak menyediakan langsung sokongan untuk pengindeksan berasaskan fungsi, pengenalan indeks berfungsi dalam MySQL 8.0.13 dan ke atas menawarkan penyelesaian untuk keperluan ini. Untuk versi lama, penggunaan lajur diindeks berasingan dengan pencetus boleh meniru kefungsian indeks berasaskan fungsi.
Atas ialah kandungan terperinci Adakah Pengindeksan Berasaskan Fungsi Sokongan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!