Farklılıkları hakkında bildiğim tek varchar
şey sınırlıdır ve text
değildir. Dokümantasyon Bu konuda söz etmez.
Gerçekten tek fark bu mu? Performans vb. Hakkında bir fikriniz yok mu?
Farklılıkları hakkında bildiğim tek varchar
şey sınırlıdır ve text
değildir. Dokümantasyon Bu konuda söz etmez.
Gerçekten tek fark bu mu? Performans vb. Hakkında bir fikriniz yok mu?
Yanıtlar:
Bunun arka planı: Eski Postgres sistemi PostQUEL dilini kullanmış ve adlı bir veri türü kullanmıştır text
(çünkü birisi bunun metin depolayan bir tür için iyi bir isim olduğunu düşündü). Daha sonra Postgres, dili olarak SQL'i kullanmaya dönüştürüldü. SQL uyumluluğunu sağlamak için, text
türü yeniden adlandırmak yerine yeni bir tür varchar
eklendi. Ancak her iki tür de dahili olarak aynı C rutinlerini kullanır.
Şimdi, bir dereceye kadar ve bazı yerlerde, text
başka hiçbir şeyin türetilememesi durumunda varsayılan bir tür olarak sabit kodlanmıştır. Ayrıca, çoğu işlev yalnızca text
bağımsız değişken almak veya geri dönmek olarak kullanılabilir text
. İki tür ikili uyumludur, bu nedenle döküm önemsiz bir ayrıştırma zamanı işlemidir. Ancak text
kullanımı hala sistem için daha doğaldır.
Ancak bu ince noktaların yanı sıra, belirgin bir fark yoktur. Hangisi size daha güzel görünüyorsa onu kullanın. ;-)
Benzer soruya bakın . Jist, hiçbir farkın olmaması, ancak daha fazla alan kullandığı ancak performansı iyileştirmediği varchar(n)
için genellikle sizin lehinize olmayan bir maksimum uzunluk belirtmektir .
http://www.postgresql.org/docs/8.4/interactive/datatype-character.html
character varying(n), varchar(n) variable-length with limit
text variable unlimited length
uzunluğu belirtilmemiş metin. Bu iki tür arasında performans farkı yoktur.