Selamlar,
Karakter seti ve karakter sıralama seçimi birbirinden farklı şeyler. Seçerken collation yani sıralama seçenekleri seçildiği için ikisinin aynı olduğu yanılgısına kapılabiliyor insanlar.
Karakter seti olarak kullanacağım yere göre değişiklik gösterse de tercihim çoğunlukla utf8'dir. utf8 ile utf8mb4 arasında şöyle bir fark vardır.
* utf8 multibyte bir karakter setidir. Yani utf8 bir karakter her zaman 1 byte uzunluğunda olmayabilir. Örneğin "i" 1 byte'lık bir karakter iken "İ" 2 byte uzunluğundadır.
* utf8 kodlama seti kendi içerisinde 1 ila 4 byte uzunluğundadır. Yani kullandığınız karaktere göre bu karakterin disk üzerinde kapladığı yer değişkenlik gösterir.
* MySQL içerisindeki utf8 kodlama sistemi 1 ila 3 byte uzunluğundadır. Yani tam olarak utf8'i MySQL desteklemez. 4 byte uzunluğundaki bir utf8 karakteri utf8 olarak seçilmiş kolona koymaya çalışırsanız MySQL hata verecektir.
* 4 byte uzunluğundaki karakterler için MySQL sonradan kendi içerisine utf8mb4 karakter kodlama setini eklemiştir.
Sıralama seçimi için de kullanacağınız içeriklerin diline göre tercih yapmanızda fayda var. Türkçe içerik barındıracaksanız eğer turkish_ci seçmenizde fayda var. Yok İngilizce içerik barındıracaksanız general_ci seçebilirsiniz.
https://dev.mysql.com/doc/refman/5.5...e-utf8mb4.html https://en.wikipedia.org/wiki/UTF-8