Rumah >pangkalan data >tutorial mysql >Bilakah Anda Harus Menggunakan Indeks Komposit dalam Pangkalan Data?

Bilakah Anda Harus Menggunakan Indeks Komposit dalam Pangkalan Data?

Patricia Arquette
Patricia Arquetteasal
2024-12-27 02:32:09211semak imbas

When Should You Use Composite Indexes in Databases?

Bila Menggunakan Indeks Komposit

Dalam pengurusan pangkalan data, indeks komposit bermanfaat untuk mengoptimumkan pertanyaan yang melibatkan pencarian data merentas berbilang lajur. Ia amat berkesan apabila pertanyaan menggunakan awalan paling kiri lajur indeks. Ini bermakna bahawa indeks akan digunakan untuk mendapatkan semula data apabila kriteria carian merangkumi semua atau subset lajur dalam indeks komposit, dalam susunan yang sama seperti yang dipaparkan dalam indeks.

Sebagai contoh, pertimbangkan jadual bernama rumah dengan skema berikut:

CREATE TABLE IF NOT EXISTS `homes` (
  `home_id` int(10) unsigned NOT NULL auto_increment,
  `sqft` smallint(5) unsigned NOT NULL,
  `year_built` smallint(5) unsigned NOT NULL,
  `geolat` decimal(10,6) default NULL,
  `geolng` decimal(10,6) default NULL,
  PRIMARY KEY  (`home_id`),
  KEY `geolat` (`geolat`),
  KEY `geolng` (`geolng`),
) ENGINE=InnoDB  ;

Faedah Menggunakan Komposit Indeks

Katakan anda sering melaksanakan pertanyaan yang mencari rumah dalam kawasan geografi tertentu. Anda boleh membuat indeks komposit pada lajur geolat dan geolng:

KEY `geolat_geolng` (`geolat`, `geolng`)

Dengan menggunakan indeks komposit ini, pangkalan data boleh mendapatkan semula rumah yang berada dalam julat geografi yang ditentukan dengan cepat kerana indeks meliputi kedua-dua lajur yang digunakan dalam carian kriteria. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa indeks komposit adalah paling berkesan apabila pertanyaan menggunakan kedua-dua lajur yang dinyatakan dalam indeks.

Memilih Susunan Terbaik untuk Indeks Komposit

Tertib lajur dalam indeks komposit harus mempertimbangkan kekerapan dan jenis pertanyaan yang dilakukan. Jika kebanyakan pertanyaan mencari data berdasarkan lajur pertama, ia harus diletakkan sebagai lajur pertama dalam indeks. Jika pertanyaan kerap menggunakan berbilang lajur, pertimbangkan untuk membuat indeks komposit dengan lajur tersebut mengikut tertib yang muncul dalam pertanyaan.

Dalam jadual rumah, jika pertanyaan biasanya mencari rumah berdasarkan lokasi dan kemudian tahun dibina, indeks komposit hendaklah distrukturkan sebagai:

KEY `location_year` (`geolat`, `geolng`, `year_built`)

Prestasi Pertimbangan

Walaupun indeks komposit boleh meningkatkan prestasi pertanyaan, indeks tersebut juga menggunakan lebih banyak ruang storan dan memerlukan overhed penyelenggaraan tambahan. Oleh itu, adalah penting untuk menilai dengan teliti potensi manfaat dan kelemahan sebelum membuat indeks komposit.

Dalam contoh jadual homes, jika pertanyaan jarang menggunakan kedua-dua geolat dan geolng bersama-sama, mencipta indeks komposit mungkin tidak menghasilkan prestasi yang ketara penambahbaikan. Dalam kes sedemikian, adalah lebih baik untuk membuat indeks berasingan pada lajur individu.

Atas ialah kandungan terperinci Bilakah Anda Harus Menggunakan Indeks Komposit dalam Pangkalan Data?. 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