Perbedaan MySQL Collation utf8_unicode

10

Tetapi saya telah membaca tentang pentingnya MySQL Collation dan apa yang telah saya pelajari sejauh ini tentang kompatibilitas dan akurasi adalah 4 ini tampaknya menjadi taruhan terbaik saya.

  • utf8_unicode_ci
  • utf8_unicode_520_ci
  • utf8mb4_unicode_ci
  • utf8mb4_unicode_520_ci

Dari pemahaman saya uft8mb4 akan baik untuk karakter dengan dukungan bahasa mutli (karakter) (Jepang misalnya). uf8 hanya mendukung 3 byte sementara uf8mb4 mendukung 4 byte. Jadi sepertinya pilihan yang jelas adalah uf8mb4, tetapi tampaknya Anda memiliki batas panjang (Sial! Saya ingin kue saya dan memakannya juga), yang sedikit menjadi perhatian (saya pikir).

Kemudian Anda memperhitungkan tentang standar 520; yang menawarkan lebih banyak, dari sedikit yang bisa saya temukan di atasnya. Tapi itu tentu saja masalahnya, saya bisa menemukan sangat sedikit tentang hal itu. Hanya saja orang-orang mengatakan itu adalah peningkatan, namun menjadi sangat kabur tentang bagaimana itu.

Saya ingin yang paling bisa saya dapatkan dengan batasan sesedikit mungkin ... Saya pikir seseorang di sini mungkin tahu satu atau dua hal. Situs resmi MySQL tidak informatif seperti yang saya harapkan.

Dari 4 yang akan menawarkan kompatibilitas, akurasi, dan panjang penyimpanan paling banyak? Juga apa sebenarnya perbedaan besar antara standar 502?

Adam
sumber

Jawaban:

10

Nama-nama pengumpulan Unicode dapat menyertakan nomor versi untuk menunjukkan versi Unicode Collation Algorithm (UCA) yang menjadi dasar penyusunannya. Collations berbasis UCA tanpa nomor versi pada nama menggunakan satu version-4.0.0tombol berat UCA . Nama pemeriksaan seperti utf8_unicode_520_cididasarkan pada kunci bobot UCA 5.2.0 .

Lihat https://dev.mysql.com/doc/refman/5.6/id/charset-collation-names.html .

Mathias Bynens
sumber
Untuk menjelaskan lebih lanjut tentang ini: collation tidak akan mengubah pengkodean yang digunakan (apa yang salah sebut character setatau disebut oleh MySQL charset), sehingga utf8akan memberi Anda UTF-8 3-byte (non-standar) dan utf8mb4akan memberi Anda UTF-8 4-byte.
jynus
1
Jadi, dalam bahasa Inggris yang sederhana apa perbedaan antara UCA 4.0.0 dan UCA 5.2.0 selain yang lebih baru. Apa keuntungan atau kerugiannya?
Adam
4
Itu mempengaruhi penyortiran. Jika Anda benar-benar perlu menyortir versi Unicode yang lebih baru (tapi masih ketinggalan zaman), maka Anda mungkin ingin menggunakannya 520_ci. Untuk situs web saya, saya tidak peduli.
Mathias Bynens
berapakah ukuran byte dari karakter ukuran byte terbesar dalam utf8mb4_unicode_520_cipemeriksaan?
oldboy