Dalam pangkalan data MySQL, pengindeksan ialah cara yang sangat penting untuk pengoptimuman prestasi. Apabila jumlah data dalam jadual meningkat, indeks yang tidak sesuai boleh menyebabkan pertanyaan menjadi perlahan atau malah menyebabkan ranap pangkalan data. Untuk meningkatkan prestasi pangkalan data, indeks perlu digunakan secara rasional apabila mereka bentuk struktur jadual dan pernyataan pertanyaan.
Indeks kompaun ialah teknologi pengindeksan yang lebih maju yang meningkatkan kecekapan pertanyaan dengan menggabungkan berbilang medan sebagai indeks. Dalam artikel ini, kami akan memperincikan cara meningkatkan prestasi MySQL dengan menggunakan indeks komposit.
Indeks komposit, juga dipanggil indeks bersama, mencipta pelbagai medan sebagai satu indeks dan boleh menyediakan indeks untuk berbilang lajur kecekapan. Indeks komposit boleh menjadi indeks kunci utama, indeks unik atau indeks biasa.
Sebagai contoh, jadual pengguna mempunyai medan seperti id, nama pengguna, umur, jantina, e-mel, dll. Jika anda perlu membuat pertanyaan berdasarkan medan umur dan jantina pada masa yang sama, anda boleh membuat komposit indeks:
CREATE INDEX age_sex_index ON user(age,sex);
Dengan cara ini, apabila menanyakan data umur=18 dan jantina='lelaki', pangkalan data akan terlebih dahulu menyusunnya mengikut medan umur, dan kemudian menyusunnya mengikut medan jantina dalam kumpulan ini, dan akhirnya mendapatkan data yang kami perlukan.
Apabila memilih medan indeks kompaun, anda perlu mempertimbangkan situasi sebenar aplikasi dan medan yang terlibat dalam pernyataan pertanyaan. Berikut adalah beberapa perkara yang perlu diberi perhatian:
(1) Pilih medan penting
Indeks komposit harus mengandungi medan yang paling penting, yang sering digunakan dalam pertanyaan dan pengisihan.
(2) Sebilangan kecil medan
Bilangan medan dalam indeks komposit hendaklah sekecil mungkin, secara amnya tidak lebih daripada 3, untuk mengelakkan terlalu rumit dan menjejaskan kecekapan pertanyaan .
(3) Prinsip padanan paling kiri
Dalam indeks komposit, prinsip padanan paling kiri merujuk kepada medan yang terlibat dalam pernyataan pertanyaan, yang mesti menjadi bahagian paling kiri indeks sebelum indeks boleh digunakan. Contohnya, jika terdapat indeks komposit (umur, jantina), medan umur mesti digunakan sebagai syarat penapisan dalam pernyataan pertanyaan, dan kemudian medan jantina boleh digunakan untuk menapis.
(4) Jenis medan
Jenis medan dalam indeks komposit perlu mengambil kira peraturan pengumpulan dan panjang rentetan. Sebagai contoh, jika anda perlu mengisih pada medan varchar, indeks akan menggunakan pengisihan rentetan, yang akan menjadi lebih perlahan daripada pengisihan berangka.
Apabila mencipta indeks komposit, anda perlu menentukan berbilang nama medan dalam pernyataan CREATE INDEX dan tentukan peraturan pengisihan bagi indeks mengikut keperluan pertanyaan Contohnya:
CREATE INDEX age_sex_index ON user(age,sex);
Apabila menanyakan indeks kompaun, anda perlu memberi perhatian khusus kepada perkara berikut:
(1) Elakkan menggunakan terlalu banyak Terlalu banyak indeks
Jika terdapat terlalu banyak indeks pada jadual, masa untuk menanya pangkalan data akan meningkat dengan ketara.
(2) Elakkan menggunakan pernyataan LIKE
Apabila menggunakan pernyataan LIKE, kelajuan pertanyaan akan menjadi lebih perlahan kerana MySQL mesti melintasi keseluruhan jadual untuk padanan corak.
(3) Elakkan menggunakan ORDER BY dan GROUP BY
ORDER BY dan GROUP BY akan melambatkan pertanyaan, terutamanya dalam jadual besar.
(1) Bagaimana untuk mengoptimumkan pernyataan SQL untuk mencipta indeks komposit?
Sesetengah pernyataan SQL menggunakan klausa WHERE yang kompleks, menyebabkan kecekapan penggunaan indeks berkurangan. Pada masa ini, anda perlu mengoptimumkan klausa WHERE dan meletakkan indeks di hadapan sebanyak mungkin untuk menjadikannya sepadan terlebih dahulu.
(2) Bagaimana untuk mengelakkan imbasan jadual penuh apabila menggunakan pertanyaan indeks kompaun dalam pernyataan pertanyaan?
Gunakan pernyataan SHOW INDEXES atau EXPLAIN statement untuk mengoptimumkan pernyataan pertanyaan dan gunakan pernyataan FORCE INDEX untuk memastikan bahawa indeks komposit digunakan semasa pertanyaan.
(3) Bagaimana untuk mengubah suai atau memadam indeks kompaun?
Anda boleh menggunakan pernyataan ALTER TABLE untuk menambah, mengubah suai atau memadam indeks kompaun. Contohnya:
ALTER TABLE user ADD INDEX age_sex_index(age,sex); ALTER TABLE user DROP INDEX age_sex_index;
Indeks kompaun ialah cara yang berkesan untuk meningkatkan prestasi MySQL dan boleh meningkatkan kecekapan pertanyaan, tetapi anda perlu memberi perhatian kepada pemilihan indeks dan pertanyaan apabila menggunakannya masalah pengoptimuman. Penggunaan indeks komposit yang betul boleh mengelakkan ketidakcekapan apabila menggunakan berbilang indeks lajur tunggal dan meningkatkan kecekapan pertanyaan data.
Atas ialah kandungan terperinci Bagaimana untuk meningkatkan prestasi MySQL dengan menggunakan indeks komposit. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!