Kekunci Asing dan Prestasi Pertanyaan
Artikel ini menyiasat peranan kunci asing (FK) dalam mengoptimumkan pertanyaan pangkalan data.
Analisis Prestasi Pertanyaan
Pertimbangkan pertanyaan yang menyertai dua jadual, Produk dan Kategori Produk, berdasarkan CategoryId mereka. Semasa pertanyaan mengembalikan Indeks Berkelompok yang dijangkakan untuk jadual ProductCategories, ia melakukan Imbasan Indeks Berkelompok pada jadual Produk. Ini menimbulkan persoalan: mengapa FK tidak meningkatkan prestasi pertanyaan untuk jadual Produk?
Untuk meningkatkan prestasi, indeks telah dibuat pada lajur Products.CategoryId. Analisis pelan pelaksanaan seterusnya mendedahkan bahawa kedua-dua jadual kini melaksanakan Pencarian Indeks, dan anggaran kos subpokok telah dikurangkan dengan ketara.
Peranan FK dalam Pengoptimuman Pertanyaan
Manakala FK berfungsi sebagai penguatkuasa perhubungan, mereka tidak secara langsung meningkatkan prestasi pertanyaan. Dalam SQL Server, FK sememangnya tidak mencipta indeks yang berkaitan. Untuk prestasi optimum, indeks hendaklah ditakrifkan secara eksplisit pada lajur FK.
Mengindeks Lajur FK
Untuk mengoptimumkan masa carian, adalah disyorkan untuk membuat indeks pada semua lajur FK merentas jadual, memastikan pengambilan data yang cekap dan mengurangkan kos pertanyaan yang bergantung pada perhubungan ini.
Atas ialah kandungan terperinci Bagaimanakah Kunci Asing Mempengaruhi Prestasi Pertanyaan dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!