Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengoptimumkan Pertanyaan MySQL dengan Klausa LIKE Menggunakan Indeks Komposit?

Bagaimana untuk Mengoptimumkan Pertanyaan MySQL dengan Klausa LIKE Menggunakan Indeks Komposit?

Patricia Arquette
Lepaskan: 2024-12-09 00:15:16
asal
441 orang telah melayarinya

How to Optimize MySQL Queries with LIKE Clauses Using Composite Indexes?

Mengenal pasti Strategi Pengindeksan Optimum untuk Pertanyaan yang Mengandungi Klausa LIKE

Apabila mengoptimumkan pertanyaan pangkalan data yang melibatkan klausa LIKE, keberkesanan indeks menjadi agak tidak pasti. Walau bagaimanapun, memahami batasan dan strategi pengindeksan optimum boleh meningkatkan prestasi pertanyaan dengan ketara.

Pertimbangkan pertanyaan berikut:

SELECT name, usage_guidance, total_used_num
FROM tags
WHERE
 ( name LIKE CONCAT('%', ?, '%') OR
   usage_guidance LIKE CONCAT(?, '%') )
 AND name NOT IN ($in)
ORDER BY name LIKE CONCAT('%', ?, '%') DESC, name ASC
LIMIT 6
Salin selepas log masuk

Menentukan indeks yang paling sesuai untuk pertanyaan ini memerlukan mempertimbangkan sifat klausa LIKE . MySQL menggunakan indeks B-tree untuk perbandingan lajur menggunakan operator seperti = dan >. Walaupun indeks B-tree boleh meningkatkan perbandingan LIKE apabila hujah LIKE ialah rentetan tetap tanpa kad bebas, kehadiran kad bebas mengehadkan keberkesanannya.

Dalam pertanyaan di atas, kedua-dua ungkapan LIKE tidak bermula dengan kad bebas. Ini bermakna indeks komposit pada lajur usage_guidance dan nama akan menjadi yang paling bermanfaat. Dengan menyusun indeks dengan cara ini, pertanyaan boleh memanfaatkan indeks untuk kedua-dua perbandingan SUKA.

Berikut ialah arahan SQL untuk mencipta indeks komposit:

CREATE INDEX idx_tags ON tags(usage_guidance, name);
Salin selepas log masuk

Dalam kes seperti ini, di mana pelbagai faktor mempengaruhi prestasi pertanyaan, menganalisis struktur jadual, data sampel dan output yang dijangka selalunya boleh mendedahkan peluang tambahan untuk pengoptimuman.

Atas ialah kandungan terperinci Bagaimana untuk Mengoptimumkan Pertanyaan MySQL dengan Klausa LIKE Menggunakan Indeks Komposit?. 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