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

  • Press Start

    Press Start

    4 HAZİRAN 2006
  • Tips On Linux

    Tips On Linu

    26 Temmuz 2008
  • FusioNGamiing

    FusioNGamiin

    10 Temmuz 2007