Rumah >pangkalan data >tutorial mysql >Bilakah Anda Harus Mencipta Indeks Komposit untuk Prestasi Pangkalan Data Optimum?

Bilakah Anda Harus Mencipta Indeks Komposit untuk Prestasi Pangkalan Data Optimum?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-10 04:57:13951semak imbas

When Should You Create a Composite Index for Optimal Database Performance?

Bilakah Anda Harus Menggunakan Indeks Komposit?

Indeks komposit ialah sejenis indeks yang merangkumi lebih daripada satu lajur. Ini berguna apabila pertanyaan kerap melibatkan berbilang lajur daripada jadual yang sama. Dengan memanfaatkan indeks komposit, pangkalan data boleh mendapatkan semula data dengan lebih cekap.

Rangkaian Prestasi Penggunaan Indeks Komposit

Menggunakan indeks komposit biasanya meningkatkan prestasi pertanyaan. Walau bagaimanapun, menggunakan bilangan indeks komposit yang berlebihan boleh memberi kesan negatif terhadap prestasi disebabkan oleh peningkatan saiz indeks dan overhed penyelenggaraan.

Sebab Penggunaan Indeks Komposit

Pertimbangkan untuk mencipta indeks komposit untuk:

  • Kendalikan pertanyaan yang melibatkan berbilang lajur daripada lajur yang sama jadual
  • Percepatkan pertanyaan yang menggunakan subset paling kiri bagi lajur indeks komposit

Contoh: Pangkalan Data Rumah

Dalam contoh anda, indeks komposit pada geolat dan geolng akan memanfaatkan penapisan pertanyaan berdasarkan koordinat ini, seperti sebagai:

SELECT * FROM homes
WHERE geolat BETWEEN ??? AND ???
AND geolng BETWEEN ??? AND ???

Analisis Pertanyaan Dikemas Kini

Berdasarkan skema yang anda berikan, pertanyaan berikut:

EXPLAIN SELECT homes.home_id,
                    address,
                    city,
                    state,
                    zip,
                    price,
                    sqft,
                    year_built,
                    account_type_id,
                    num_of_beds,
                    num_of_baths,
                    geolat,
                    geolng,
                    photo_id,
                    photo_url_dir
            FROM homes
            LEFT OUTER JOIN home_photos ON homes.home_id = home_photos.home_id
                AND homes.primary_photo_group_id = home_photos.home_photo_group_id
                AND home_photos.home_photo_type_id = 2
            WHERE homes.display_status = true
            AND homes.geolat BETWEEN -100 AND 100
            AND homes.geolng BETWEEN -100 AND 100

menggunakan indeks paparan_status dan bukan geolat atau geolng indeks. Indeks komposit pada geolat dan geolng berpotensi meningkatkan prestasi pertanyaan dalam senario ini.

Atas ialah kandungan terperinci Bilakah Anda Harus Mencipta Indeks Komposit untuk Prestasi Pangkalan Data Optimum?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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