Rumah > pangkalan data > tutorial mysql > `LIKE` lwn. `=` dalam SQL: Bilakah Pemadanan Wildcard Lebih Cekap?

`LIKE` lwn. `=` dalam SQL: Bilakah Pemadanan Wildcard Lebih Cekap?

Barbara Streisand
Lepaskan: 2025-01-05 07:37:43
asal
964 orang telah melayarinya

`LIKE` vs. `=` in SQL: When is Wildcard Matching More Efficient?

Prestasi 'LIKE' vs '=' dalam SQL Apabila Menggunakan Kad Liar

Secara umumnya dipercayai bahawa '=' lebih cekap daripada 'LIKE' apabila menggunakan kad bebas dalam pertanyaan SQL. Walau bagaimanapun, ini mungkin tidak selalu berlaku.

Pertimbangkan contoh berikut:

SELECT * FROM table WHERE value LIKE 'abc%'
Salin selepas log masuk
SELECT * FROM table WHERE value = 'abcdefghijklmn'
Salin selepas log masuk

Dalam kes ini, 'LIKE' hanya perlu membandingkan tiga aksara pertama untuk mencari perlawanan. '=' mesti membandingkan keseluruhan rentetan. Oleh itu, nampaknya 'LIKE' akan mempunyai kelebihan dalam senario ini.

Walau bagaimanapun, penggunaan indeks boleh menjejaskan prestasi pertanyaan 'LIKE'. Seperti yang dinyatakan dalam artikel ini oleh Jonathan Nelson di MyITForum:

  • Jika kriteria penapis anda menggunakan '=' dan medan diindeks, ia mungkin akan menggunakan INDEX/CLUSTERED INDEX SEEK.
  • Jika kriteria penapis anda menggunakan 'LIKE' tanpa kad bebas, ia berkemungkinan besar menggunakan indeks seperti '='.
  • Jika kriteria penapis anda menggunakan 'SUKA' dengan kad bebas pada mulanya, kemungkinan besar untuk menggunakan indeks.
  • Walau bagaimanapun, jika kriteria penapis anda menggunakan 'SUKA ' dengan STRING FIRST dan mempunyai kad bebas di suatu tempat SELEPAS itu, SQL boleh menggunakan INDEX SEEK untuk mencari baris yang mempunyai aksara permulaan pertama yang sama dan kemudian melihat melalui baris tersebut untuk padanan tepat.

Oleh itu, prestasi pertanyaan 'LIKE' vs '=' dengan kad bebas bergantung pada pelbagai faktor, termasuk penggunaan indeks, lokasi kad bebas dan enjin SQL khusus yang digunakan .

Atas ialah kandungan terperinci `LIKE` lwn. `=` dalam SQL: Bilakah Pemadanan Wildcard Lebih Cekap?. 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