Çok küçük tablolar (1000 satıra kadar) için dizin kullanmak için herhangi bir neden var mı?


9

Uygulama geliştirme sırasında ürünler için taze / çürük, kırmızı / yeşil / mavi gibi "nesneler" için öznitelikleri tutan "küçük" miktarda veri (genellikle 10-40 değer, id+ valueve bazen type) depolayan birçok tablo var .

Bu özellikleri ürün tablosuna koymuyorum çünkü elektronik bileşenler taze olamaz ve oksijen gazı kırmızı olamaz ve tablolarda sınırsız satır sayısı olamaz ...

Öznitelikleri saklamak idiçin 2-3 alanda özel küçük tablolar kullanıyorum: bağlantı nameiçin, uygulamada ve bazen typeaynı kategorideki öznitelik gruplarında göstermek için.

Birincil "nesneler", ara çoktan çoka tablolar aracılığıyla özniteliklere bağlanır.

1000'den az öğe içeren (genellikle 10-40) "küçük sözlükler" için dizin oluşturmak ve korumak için herhangi bir neden var mı?

Hedef veritabanım Oracle ama umarım bu satıcıdan bağımsız ...

Dolduruyorum - hayır, ancak doldurmamı haklı gösterecek teknik becerim yok ...

Yanıtlar:


14

Genellikle evet. Bir indeks olmaması durumunda, erişim kalıbı sadece ihtiyacınız olanın olup olmadığını görmek için her satırı incelemelidir . Sorun tablo boyutu değil, eşzamanlılıktır. Yalıtım seviyenize bağlı olarak, taramalarınız sonuçta 'ilgisiz' satırların kilidinin açılmasını beklemek için taahhüt edilmemiş işlemin arkasına engel olabilir. Taramanızın her satıra 'bakacağı' garanti edildiğinden, her tarama herhangi bir yazma işleminin arkasına engellenir (ekleme, silme veya güncelleme). Oracle, bu durumda TAMAM olan (engelleme yok) anlık görüntü yalıtımını varsayılan olarak kullanır, ancak diğer satıcılar varsayılan olarak başka bir şeye (ör. SQL Server engelleme Oku varsayılan olarak varsayılan taahhüt eder .

Bir indeks mevcut olduğunda, erişim düzeniniz sadece ilgili satırlara (istenen anahtar aralık dahilinde) bakacaktır, böylece bir kilit çakışmasına çarpma saf istatistiksel şansı büyük ölçüde azalır.


Açıklama için teşekkürler, (şu anda 3 yıl sonra olmasına rağmen) bir takip sorum var. En fazla 3 veya 4 sıralı çok küçük tablolar ne olacak?
Rob

Sertifika küçük tablolar (1-2 Sayfa sığacak) büyük olasılıkla taranacaktır
Remus Rusanu

@Remus, MySQL'de İndeks oluşturmak için gerekli
Singh Kailash
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.