Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengoptimumkan Pertanyaan SEPERTI Berbilang Lajur dalam MySQL?
Dengan pertanyaan kerap seperti SELECT x, y, z FROM table WHERE x SUKA '%text%' ATAU y SUKA '%text%' ATAU z SUKA '%text%', mengoptimumkan MySQL untuk operasi sedemikian menjadi penting. Walaupun indeks biasanya meningkatkan kecekapan pertanyaan untuk lajur diindeks, isunya terletak pada penggunaan kad bebas (%teks%) dalam klausa SUKA.
Untuk lajur teks, indeks berfungsi dengan mengindeks aksara bermula dari sebelah kiri. Bagaimanapun, pertanyaan LIKE dengan kad bebas pendahuluan dan mengekori (cth., %teks%) menghalang penggunaan indeks kerana kedudukan permulaan teks tidak diketahui.
Sebaliknya daripada bergantung pada indeks, pertimbangkan perkara berikut pendekatan:
Jika jadual yang terjejas menggunakan enjin storan MyISAM, MySQL menyediakan FTS. Ciri ini memudahkan carian teks yang cekap dengan mengindeks keseluruhan perkataan dan bukannya bilangan aksara yang tetap.
Untuk jadual bukan MyISAM, buat jadual berasingan jadual indeks yang menyimpan perkataan dan ID yang sepadan dalam jadual utama. Ini pada asasnya meniru kefungsian FTS, membolehkan carian pantas pada istilah yang diindeks.
MySQL versi 5.6 dan kemudian melanjutkan sokongan FTS kepada jadual InnoDB, memberikan sokongan yang cekap alternatif untuk kedua-dua enjin storan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengoptimumkan Pertanyaan SEPERTI Berbilang Lajur dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!