SORU
3 ŞUBAT 2010, ÇARŞAMBA


SQL - çok-çok tablo birincil anahtar

Bu soru bu soru: bir yorum okuduktan sonra gelir

http://stackoverflow.com/questions/2190089/database-design/2190101

Oluşturduğunuzda, bir çok-çok tablo, gereken oluşturduğunuz bir bileşik birincil anahtar, yabancı anahtar sütunları veya oluşturmak bir otomatik artış vekil "İD" birincil anahtar ve koy dizinler üzerinde iki FK sütun (ve belki de eşsiz bir kısıtlama)? Yeni kayıt eklemek için performansı üzerindeki etkileri yeniden dizin oluşturma/her durumda nedir?

Temelde, bu

PartDevice
----------
PartID (PK/FK)
DeviceID (PK/FK)

vs Bu:

PartDevice
----------
ID (PK/auto-increment)
PartID (FK)
DeviceID (FK)

Yorumcu diyor ki:

PK iki Kimlikleri yapmak anlamına gelir tablo fiziksel olarak diskte sıralanır bu sırayla. Eğer öyleyse biz Ekle () Ödev-1/Aygıt1, (Ödev-1/Aygıt 2), (Part2/Device3), sonra (Bölüm 1/Device3) veritabanı kırmak zorunda olacak tablo dışında ve sonuncusu Ekle girişleri 2 ve 3 arasında. Birçok için kayıtlar, bu çok sorunlu olur yüzlerce karıştırma,karıştırmak gibi binlerce veya milyonlarca plak her zaman eklenir. Buna karşılık, autoincrementing bir PK yeni sağlar son tartışmaları için kaydeder.

Sormamın sebebi her zaman otomatik artış hiçbir taşıyıcı sütun ile bileşik birincil anahtar yapmaya meyilli olduğum için, ama eğer yedek anahtarı aslında daha fazla ölçülebilir olup olmadığından emin değilim.

CEVAP
3 ŞUBAT 2010, ÇARŞAMBA


Basit bir iki sütun-çok eşleme ile, bir yedek anahtar olması için gerçek bir avantaj görüyorum. Sahip bir birincil anahtar (col1,col2) garanti benzersiz (varsayarsak col1 col2 değerleri başvurulan tablolar benzersiz ve ayrı bir dizin (col2,col1) yakalamak bu durumlarda tam tersi bir emir versin çalıştırmak daha hızlı. Yedek alanı kaybıdır.

Tablo sadece iki başvurulan tablolar birlikte katılmak için kullanılır, çünkü tek tek sütunlar üzerinde dizinler ihtiyacınız olmayacak.

Bakın bu açıklama söz konusu kullandığı elektronlar değer, bana göre değil. Yazar, bu tablo son derece yüksek performanslı çok yönlü ağaç yapısı dengeli yerine dizi olarak depolanır düşünüyormuş gibi geliyor.

Bir başlangıç için, hiç veya marketten almak gerekirtablosıralanmış, sadece dizin. Ve dizin olmayacaksaklısırayla, hızlı bir şekilde alınan edebilmek için etkili bir şekilde saklı olacak.

Buna ek olarak, veritabanı tabloları büyük çoğunluğu okunurfardaha sık yazılı. Select tarafta bir şey eklemek tarafında her şey çok daha ilgili kılıyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • boniver

    boniver

    17 NİSAN 2006
  • jat4011

    jat4011

    16 EKİM 2010
  • Matt Stokes

    Matt Stokes

    22 Ocak 2008