Soru postgresql 9.2'deki varchar (n) 'nin maksimum uzunluğu nedir ve varchar (n) veya metin kullanmak en iyisidir?


Merhaba postgresql 9.2 kullanıyorum ve bazı uzun dizeleri saklamak için varchar (n) kullanmak istiyorum ama varchar (n) destekleyen karakterin maksimum uzunluğunu bilmiyorum. ve hangisini kullanmak daha iyidir, lütfen bana öneride bulunabilir misiniz? Teşekkürler


29
2018-04-10 06:20


Menşei




Cevaplar:


tl; dr: 1 GB (her karakter (gerçekten: kod noktası), bir unicode düzleminde nerede olduklarına bağlı olarak, bir UTF-8 kodlu veri tabanını varsayarak, 1 veya daha fazla bayt ile temsil edilebilir). Her zaman kullanmalısın text Postgresql'deki rasgele uzunluk karakter verileri için veri türü.

Açıklama: varchar(n) ve text Aynı arka uç depolama türünü kullan (varlena): 32bit uzunluğundaki sayaca sahip değişken uzunluklu bayt dizisi. Dizin oluşturma davranışı için text Hatta bazı performans avantajları olabilir. Postgres'te kullanmak için en iyi uygulama olarak kabul edilir. text yeni gelişme için yazın; varchar(n) SQL standart destek nedenlerinden dolayı kalır. NB: varchar() (boş parantez ile) için bir Postgres-spesifik takma addır text.

Ayrıca bakınız: http://www.postgresql.org/about/


30
2018-03-30 19:29





Resmi belgelere göre ( http://www.postgresql.org/docs/9.2/static/datatype-character.html ):

Her durumda, saklanabilecek en uzun karakter dizisi yaklaşık 1 GB'dir. (Veri türü bildirimlerinde n için izin verilebilecek maksimum değer bundan daha azdır. Bunu değiştirmek yararlı olmaz çünkü çok baytlı karakter kodlamaları ile karakter sayısı ve bayt sayısı oldukça farklı olabilir. Belirli bir üst sınıra sahip olmayan uzun dizeler, rasgele uzunluk sınırı oluşturmak yerine, uzunluk belirteci olmaksızın değişen metin veya karakterleri kullanın.)

Çevrimiçi arama, izin verilen maksimum değerin kurulum ve derleme seçeneklerine bağlı olarak değiştiğini, bazı kullanıcıların ise en fazla 10485760 karakterleri (tam olarak 10MiB, karakter başına 1 baytlık sabit kodlamayı kabul ederek).


11
2018-04-10 06:24



çok hızlı cevap verdiğin için teşekkürler. ama açıklayabilir misiniz, "kurulum ve derleme seçeneğine bağlı olarak" ne demektir - KRISHNA