MySQL Collations: utf8_unicode_ci ve utf8_general_ci arasındaki farklar

Wednesday February 18th 2009, 14:58 pm |   |  Web Teknolojileri | by eser s.

Web projelerimde UTF-8 kullanmaya başladığımdan beri merak ettiğim bir konu vardı. O da MySQL’deki collation değerlerinden utf8_unicode_ci ve utf8_general_ci arasında ne tür farklar olduğu idi. Biraz araştırma sonucu aşağıdaki sonuçlara ulaştım. Bakınız MySQL’deki iki collation değeri arasındaki farklar ve birbirlerine üstünlükleri neymiş?

- utf8_general_ci collation tipi utf8_unicode_ci tipine göre daha basit bir tip ve genel çalışma şekli de şu şekilde:

Bazı dillerde yer alan özel harflerde bulunan accent denilen şapkaları vs. kaldırıp harfi büyük harfe çeviriyor ve o harf grupları için belirlenen temel harfin koduna göre karşılaştırma yapıyor.
Örnek olarak, ÀÁÅåāă harflerindeki şapkaları kaldırıp temel olan A harfi ile karşılaştırıyor.

Halbuki utf8_general_ci tipi daha geniş bir Unicode karşılaştırma tablosu (DUCET) kullanıyor.

- İkinci olarak, utf8_general_ci Œ, ß benzeri aslında harf grubu tipinde olan harfleri desteklememekte ve bu tip harfleri sıralarken tek karaktermiş gibi algılayıp yanlış sıralayabiliyor.

Ancak utf8_general_ci, bu tip harf gruplarını doğru algılayıp genellikle çok daha doğru bir sıralama yapmakta.

- Bir başka fark da desteklenen dil tipleri. utf8_general_ci sadece belli dil gruplarını destekleyebilirken utf8_unicode_ci çok daha geniş dil gruplarını desteklemekte. Örnek olarak utf8_general_ci Kiril alfabesi kullanmakta olan dillerden sadece Rusça ve Bulgarca’yı desteklerken utf8_unicode_ci ayni dil grubundan Makedonca, Ukraynaca, Sırp ve Belarus dilleri gibi diğer dilleri de desteklemekte ve doğru biçimde sıralayabilmekte.

utf8_general_ci‘nin utf8_unicode_ci‘ye olan üstünlüğüne gelecek olursak o da utf8_unicode_ci‘ye göre daha hızlı olması. Dolayısıyla performans gibi dertleriniz varsa utf8_general_ci, sıralama ile ilgili sorunlarınız varsa ve bu sizin için daha önemli ise utf8_unicode_ci kullanmanız daha doğru olacaktır.

Kısaca collation seçimi ihtiyaçlarınıza ve öncelik listenize göre değişiklik gösterebilmekte.

Hani sizin de aklınıza bunlar arasındaki farklar nedir diye bir konu takılmışşa :)

Kaynaklar:
* http://forums.mysql.com/read.php?103,187048,188748#msg-188748
* http://www.collation-charts.org/mysql60/mysql604.utf8_general_ci.european.html
* http://www.collation-charts.org/mysql60/mysql604.utf8_unicode_ci.european.html


Comments
No Comments   |   Leave a comment  |  Comments RSS on this post.  |   TrackBack URI
No comments yet.

Leave a comment

[required]

[required]



Line and paragraph breaks automatic, e-mail address never displayed,
HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

This is a captcha-picture. It is used to prevent mass-access by robots. (see: www.captcha.net)

You must read and type the 5 chars within 0..9 and A..F, and submit the form.

  

Oh no, I cannot read this. Please, generate a

 
SHATO Web Hosting Services