Rumah > pangkalan data > tutorial mysql > Adakah Kunci Asing Mempercepatkan Pertanyaan?

Adakah Kunci Asing Mempercepatkan Pertanyaan?

Barbara Streisand
Lepaskan: 2025-01-05 19:44:40
asal
311 orang telah melayarinya

Do Foreign Keys Speed Up Queries?

Kunci Asing dan Prestasi Pertanyaan

Walaupun kunci asing memainkan peranan penting dalam menguatkuasakan integriti rujukan, kesannya terhadap prestasi pertanyaan sering disalahertikan. Bertentangan dengan kepercayaan umum, kunci asing itu sendiri tidak meningkatkan prestasi pertanyaan dengan ketara.

Dalam senario yang disediakan, pertanyaan menggabungkan dua jadual, Produk dan Kategori Produk, menggunakan medan CategoryId sebagai syarat penyertaan. Walaupun terdapat hubungan kunci asing, pelan pertanyaan menunjukkan imbasan indeks kelompok pada Produk jadual. Ini kerana SQL Server tidak mencipta indeks secara automatik berdasarkan kunci asing.

Untuk meningkatkan prestasi pertanyaan ini, indeks harus dibuat secara eksplisit pada medan Products.CategoryId. Selepas mencipta indeks, pelan pelaksanaan menunjukkan carian indeks pada kedua-dua jadual, dengan ketara mengurangkan anggaran kos subpokok.

Oleh itu, jawapan kepada soalan yang dikemukakan adalah seperti berikut:

  • Adakah kunci asing menambah baik pertanyaan prestasi?

    • Tidak. Kunci asing adalah terutamanya untuk integriti data, bukan pengoptimuman prestasi.
  • Perlukah saya mencipta indeks pada semua lajur FK dalam semua jadual?

    • Ya. Untuk meningkatkan prestasi pertanyaan pada medan kunci asing, indeks harus dibuat secara eksplisit pada lajur tersebut. Ini membolehkan carian yang lebih pantas dan mengurangkan kemungkinan imbasan jadual penuh.

Atas ialah kandungan terperinci Adakah Kunci Asing Mempercepatkan Pertanyaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan