İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Mysql de varchar() ve text arasındaki fark nedir?

hakanyal

0
İyinet Üyesi
Katılım
20 Şubat 2005
Mesajlar
302
Reaction score
0
Databaseyi oluştururken kullandığımız sütunların varchar olması veya text olması arasındaki fark nedir? kullanım alanları arasında bir fark olabilir mi?
 

iyinet

Root
Admin
Hosting Firması
Katılım
2 Eylül 2002
Mesajlar
5,028
Reaction score
63
Konum
Sakarya
Varchar kisitli bir alan kaplayacak karakter veriler icin tasarlanmistir, genellikle limiti 255 dir yani varchar(255). Ancak her veritabani sisteminde farkli olabilir.
text ise buyuk miktarda karakter veri depolamak icin, ornegin sayfalarca yazi...

MySQL diger veritabanlarina gore text alanlar uzerinde daha iyidir, yani full text arama ozelligi vardir. Diger veritabalarinda bu ozellik icin ek ucret odemeniz gerekebilir. Text alanlar uzerinde, ayni varchar gibi sorgu yapmaniza imkan verir.

Eger depalayacaginiz veri 255 karakterden kisa ise (ad, soyad, adres vb...) varchar kullanin. Burada gereksiz yere text kullanmaniz, bosu bosuna veritabanini yavaslatabilir.

Veri buyuk ise, ornegin bir web sayfasinin veritabaninda tutulmasi gibi, o zaman text kullanin.
 

hakanyal

0
İyinet Üyesi
Katılım
20 Şubat 2005
Mesajlar
302
Reaction score
0
teşşekkür ederim iyinet admin. çok yardımcı oldun. rep vermek isterdim ama daha önceden vermişim herhalde. :)
 

daRksnak3

0
İyinet Üyesi
Katılım
3 Eylül 2005
Mesajlar
138
Reaction score
0
Konum
Denizli
Bende son birşey ekleyeyim;
text de satır desteği varken
varchar da sadece 1 satır kullanabilirsin.
 

Caesar

0
İyinet Üyesi
Katılım
5 Haziran 2006
Mesajlar
1,894
Reaction score
7
varcharin yaratilma sebebi bazi şeyleri sinirlandirmaniz anlamina gelmektedir. ornegin maximum nickname 10 haneli ayarlarsaniz varchar(10) muhittin_ nicki muhittin_a şeklinde kayit edilecektir.

Örneğin şifreleme yontemlerinde md5 kullananlar varchar(32) yaparlar çünkü hash uzunluğu 32 karakterlidir. varchar text e göre daha hızlıdır evet çünkü varchar degeri bilinir maxi ve min uzunluklar arası arama yapilir.
 

hakanyal

0
İyinet Üyesi
Katılım
20 Şubat 2005
Mesajlar
302
Reaction score
0
arkdaşlar sizlerden de teşekkür ederim. kücük ayrıntılar büyük farklar yaratıyor... bunları öğrenemem iyi oldu
 
G

Gezgin

Misafir
Şifreleme yöntemleri için char alanlar

Varchar değişken değerli char alan anlamında kullanılmaktadır. Char tipi alanlar belirlenen veri limiti kadar veriyi her satırda bulundurur, satıra girilen veri char alanın limitinden küçükte olsa char alan kendi limiti kadar alanı veri tabanında kaplayacaktır bunun aksine varchar alan değişken değerlere sahiptir, girilen veri kadar yer kaplar.

Varchar genellikle kişi isimleri, eposta adresleri, telefon numaraları, vb bilgileri tutmak için kullanılır. Varchar alan MySQL için en fazla 255 byte lık veri yani 255 karakterlik bir veri saklayabilir. Bu alan lar index olarak kullanılabildikleri gibi MySQL sürümünüze göre yüksek değerlerde index tanımlanamayabilirler.

Varchar alanlar da MySQL sürümüne göre karakter karşılaştırması yapılabilir.

Sabit uzunlukta olmayan ama 255 karakterden de kısa olan verileriniz için varchar alanlar en uygun tercih olacaktır.

Char alanlar sabit değerlere sahip verileri tutmak için kullanılırlar. Girilen veri boyutu kendi limitinden küçük olsa dahi kendi limiti kadar veri tabanında yer kaplar. Varchar gibi değişken değerli alanlara karşın char yapılan sorgularda çok daha hızlı yanıt vermektedir. Bu nedenle sabit değerlere sahip yani ne uzayan nede kısalan veri kümeleri için char kesinlikle en doğru tercih olacaktır.

Örneğin bir kullanıcı girişi için şifrelerinizi saklarken bunları md5 ya da sha1 gibi bir hash algoritması ile şifreledikten sonra veri tabanında saklıyorsunuz diyelim. MD5 girilen veri boyutu farketmeden onu bir 32 karakterlik bir katara dönüştürür yani elimizdeki şifremiz ne olursa olsun 32 karakter olacaktır. Bu nedenle char kullanmak en doğru seçim olacaktır çünkü char alan da ne olursa olsun tanımlandığı limit kadar yer kaplar. Saklanacak varchar olsa da char olsa da aynı boyutta olacaktır ancak char kullanırsak sorgularımızı da hızlandırmış oluruz. Bunun için şifremiz için 32 karakter limitli bir char alan kullanırız.


kaynak : www.mysqlturkiye.org
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst