Rumah >pangkalan data >tutorial mysql >Adakah Kunci Asing Meningkatkan Prestasi Pertanyaan?
Kesan Utama Asing terhadap Prestasi Pertanyaan
Kunci asing adalah penting untuk mengekalkan integriti data dengan menguatkuasakan kekangan rujukan. Walau bagaimanapun, adakah mereka memberikan apa-apa faedah tambahan dari segi prestasi pertanyaan?
Implikasi Prestasi Pertanyaan
Pertanyaan yang disediakan melakukan JOIN antara jadual Produk dan ProductCategories berdasarkan CategoryId. Walaupun jadual ProductCategories menggunakan pencarian indeks kelompok, jadual Produk menggunakan imbasan indeks kelompok. Ini menimbulkan persoalan sama ada kunci asing antara jadual tidak membantu meningkatkan prestasi pertanyaan.
Fungsi Kunci Asing
Kunci asing berfungsi terutamanya untuk mengelakkan ketidakkonsistenan data dengan memastikan bahawa rekod berkaitan wujud sebelum rekod baharu dimasukkan atau rekod sedia ada dipadamkan. Mereka tidak mencipta indeks secara semulajadi.
Mencipta Indeks Berkaitan FK
Untuk mengoptimumkan prestasi pertanyaan bagi perhubungan utama asing, adalah disyorkan untuk mencipta indeks pada lajur kunci asing . Dalam kes ini, mencipta indeks pada Products.CategoryId akan membolehkan carian diindeks untuk kedua-dua jadual, mengurangkan anggaran kos subpokok dengan ketara.
Mengindeks Lajur FK
Sebagai amnya peraturan, adalah berfaedah untuk mencipta indeks pada semua lajur kunci asing untuk memudahkan pencarian yang cekap. Amalan ini memastikan pertanyaan yang bergantung pada kunci asing boleh memanfaatkan indeks dan mengelakkan imbasan jadual penuh yang mahal atau kaedah capaian indeks yang tidak optimum.
Oleh itu, walaupun kunci asing penting untuk integriti data, ia tidak bertambah baik secara automatik prestasi pertanyaan. Membuat indeks pada lajur kunci asing ialah langkah penting untuk mengoptimumkan pelaksanaan pertanyaan.
Atas ialah kandungan terperinci Adakah Kunci Asing Meningkatkan Prestasi Pertanyaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!