SORU
12 EYLÜL 2008, Cuma


Neden hiç CHAR SQL VARCHAR üzerinde?

CHAR eğer tüm değerler sabit genişlikte tavsiye edilir bunun farkındayım. Ama, ne? Neden sadece tüm metin alanları için VARCHAR sadece güvenli olması için almak değil.

CEVAP
12 EYLÜL 2008, Cuma


Genel olarak seçCHARtüm satırlar için kapatmak zorunda kalacaklaraynı uzunlukta. SeçVARCHARo zamanuzunluğu değişirönemli ölçüde. CHAR da tüm satırlar aynı uzunlukta olduğundan biraz daha hızlı olabilir.

DB uygulama tarafından değişir, ama genellikle VARCHAR gerçek verilerin yanı sıra depolama (uzunluğu ya da fesih için) bir veya iki bayt kullanır. Yani (tek baytlık karakter kümesi kullanıyorsanız varsayarak) saklamak "sözcüğü . Falanca

  • CHAR(6) = 6 bayt (genel giderler)
  • (10) = 8 bayt (yük 2 bayt) VARCHAR
  • (10) = 10 bayt (yük 4 bayt) CHAR

Alt satırdaCHARolabilirdaha hızlıve daha fazlasıuzay verimlinispeten aynı uzunlukta veri (iki karakter içinde uzunluğu farkı).

Not: Microsoft SQL VARCHAR için yük 2 bayt var. Bu DB den DB değişebilir, ama genellikle havai en az 1 byte uzunluğu gösterir ya da bir VARCHAR EOL ihtiyacı var.

Gibi olduğunu işaret ederek Gaven açıklamalarda, kullanıyorsanız bir multi-byte, değişken uzunluktaki karakter kümesi gibi UTF8 sonra CHAR mağaza en fazla kaç bayt gerekli deposu sayıda karakter. Eğer UTF8 ihtiyacı en fazla 3 karakter saklamak için bayt, o zaman CHAR(6) bile sadece depolama latin1 karakter ise 18 bayt sabit olacak. Bu durumda VARCHAR çok daha iyi bir seçim olur.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Andrea Lewis

    Andrea Lewis

    14 Mart 2013
  • colacas

    colacas

    29 EKİM 2006
  • jcortes187

    jcortes187

    24 Mart 2006