SORU
26 ŞUBAT 2010, Cuma


Neden tarihsel olarak insanların 255 veritabanı alan büyüklükleri için değil 256 kullanıyor?

Sık sık veritabanı alanları 255 karakter büyüklük için ayarlama, ne geleneksel / tarihi sebebi neden? Bir disk belleği / bellek limitleri ve performans ile ilgili bir problem olduğunu sanıyorum ama 255 ve 256 arasındaki farkı her zaman beni karıştırdı.

varchar(255)

Bu göz önüne alındığında bir kapasite ya da büyüklük,değil, bir dizin oluşturucu,neden 255 256 tercih edilir?Bir bayt bir amaç için ayrılmış (ya da boş falan terminator).

Muhtemelen ikilik(0) saçmalık (kapasite sıfır)? Bu durumda alanı 2^8 256 mutlaka olmalıdır?

Performans faydaları sağlayan diğer büyüklükleri var mı? Örneğin ikilik(512) ikilik(511) veya ikilik(510) daha az ölçülebilir mi?

Bu tüm ilişkiler veritabanları, eski ve Yeni için aynı değeri mi?

Yasal Uyarı- Bir geliştirici bir DBA değilim, o bilinen iş benim mantığım uygun alan boyutları ve türleri ile SQL server 2005 kullanıyorum, ama bilmek istiyorumtarihieğer artık önemli değilse bile bu tercih sebebi, (ama daha hala geçerlidir).

Düzenleme:

Cevaplar için teşekkürler, bir bayt boyutu saklamak için kullanılır, ama bu konuda kesin fikrimi etkilemiyor bazı tam bir görüş birliği var gibi görünüyor.

Eğer meta veri (string, uzunluk) aynı bitişik bellek/disk saklanan, bazı mantıklı. Meta veri 1 byte ve dize veri 255 bayt, birbirimizi çok güzel elbise, ve muhtemelen temiz ve düzenli depolama 256 bitişik bayt, içine uyabilecek.

Ama...Eğer meta (string uzunluk) saklı ayrı ayrı gerçek dize verileri (master tablo belki), sonra da sınırlamak uzunluğu dize veri tek bir bayt, sırf daha kolay saklamak için sadece 1 byte tamsayı meta gibi biraz tuhaf.

Her iki durumda da, muhtemelen DB uygulamasına bağlı bir incelik gibi görünüyor. 255 kullanmanın pratik bir yerlerde birilerinin başına iyi şeyler savundu. oldukça yaygın görünüyor, herkes bu davanın ne olduğunu hatırla. Programcılar bir neden olmadan herhangi bir yeni uygulama kabul etmeyecek, ve bu yeni bir kez olmalı.

CEVAP
26 ŞUBAT 2010, Cuma


En fazla 255 karakter uzunluğu ile VERİTABANI alanında veri uzunluğunu belirtmek için tek bir bayt kullanmak için seçebilirsiniz. Eğer sınırı 256 ya da daha büyük olsaydı, iki bayt gerekli olacaktır.

Uzunluğu sıfır değeri kesinlikle varchar veri yoksa kısıtlı sürece) için geçerlidir. Çoğu sistemde böyle boş bir dize NULL ayrı olarak tedavi, ancak bazı sistemlerde (özellikle Oracle) boş bir dize NULL aynı şekilde davranın. Boş bir dize NULL olduğu sistemler için ek bir bit bir yerde satır değeri BOŞ olarak ya da değil göstermek için gerekli olacaktır.

Not olarak, bu tarihi bir yoludur ve muhtemelen çoğu sistemler için uygun.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • We've moved!

    We've moved!

    7 Ocak 2008
  • MADFINGER Games a.s.

    MADFINGER Ga

    21 NİSAN 2009
  • Michael Neal

    Michael Neal

    2 Mayıs 2009