Soran
SQL Server varchar(max) mı yoksa text mi?

Genel Tartışma
-
Farz edelim amacım sadece uzun bir metin tutmak ve üzerinde arama vs yapmak yok. Bu durumda bazı projelerde varchar(max) bazılarında ise text görmekteyim. Ben text alanın blob olduğu için indexleme dışında bir alanda tutulduğunu filan okumuştum acaba varchar(max) konusunun farklı bir avantajı mı vardır.
Teşekkürler
Fullstack Developer
Tüm Yanıtlar
-
Aralarında bir sürü fark var ama text , ntext ve image gelecekte olmayacağı için doğrudan varchar(max), nvarchar(max) kullanılması en doğru tercih olacaktır.
-
Şimdi benim aklımı karıştıran olay da aslına bakarsan bu. Yani text gibi blob alanlar indexlenemediği için daha doğrusu yazılarda farklı yöntemlerle işte nedir bu alanların disk adresleri filan tutularak erişiliyor filan yazıyordu. Herneyse burada varchar(max) alanı indexlenebilir bir alanın içine girmiş olmaz mı bu durumda benim blob mantığıyla tutulabilecek bir şeyi varchar da kullanmam sıkıntı olmaz mı. Yoksa bu artık önemsiz bir husus mu, yada artık blob kapsamına girecek bu verileri sql de tutmamak mı gerek aynı resimler gibi metinleri de fiziksel dosyalara kaydedip adreslerini mu tutmak mantıklı.
Fullstack Developer
-
varchar(max) 'ın size'ı yok ve nonclustered indexler 900byte ı geçemez. Yani varchar(max) için zaten nonclustered index oluşturamazsın. Ama full text index atmana engel değil.
her şey mssql kapsamında bu arada
- Düzenleyen Cihan YakarMVP 31 Ağustos 2016 Çarşamba 20:32
-
-
Hocam aslında bu biraz tutacağınız verinin yapısına ve büyüklüğüne bağlı olarak da değişebilir. Sadece metin olarak tutmak mı istiyorsunuz, üzerinde full-text search vb. bir yapı kuracak mısınız, indexleme stratejiniz ne olacak gibi birçok farklı açıdan bakmak gerekebilir. Burada tercih edeceğiniz yapıya bağlı olarak varchar(max) veya file table kullanabilirsiniz. Ancak Cihan Bey'in de dediği gibi text, ntext, image gibi veri tipleri Microsoft tarafında deprecated olarak işaretlenmiş veri tipleridir. Gelecek sürümlerde kaldırılması gündeme gelecektir. Bu nedenle eğer sadece text veya varchar(max) arasında kaldıysanız yeni geliştirmeler için kesinlikle varchar(max) kullanmanızı önerebilirim.
Naçizane fikirlerimi paylaştım. Umarım faydalı olur...
Please Mark This As Answer if it solved your issue
Please Vote This As Helpful if it helps to solve your issue
www.abdullahaltintas.com -