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
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.
Neden char[] şifreler için Dize Java t...
Neden karma tablo üzerinde Sözlük terc...
Neden easy_install pip üzerinde kullan...
Neden't ben bir Dize üzerinde geç...
Neden't varsa PyPy 6.3 kat daha h...