Keunggulan UTF8:
-
Mendukung sebagian besar bahasa, termasuk bahasa RTL seperti Ibrani.
-
Tidak diperlukan terjemahan saat mengimpor/mengekspor data ke komponen sadar UTF8 (JavaScript, Java, dll).
Kekurangan UTF8:
-
Karakter non-ASCII akan membutuhkan lebih banyak waktu untuk dikodekan dan didekode, karena skema penyandiannya yang lebih kompleks.
-
Karakter non-ASCII akan memakan lebih banyak ruang karena dapat disimpan menggunakan lebih dari 1 byte (karakter tidak dalam 127 karakter pertama dari kumpulan karakter ASCII). Sebuah
CHAR(10)
atauVARCHAR(10)
bidang mungkin memerlukan hingga 30 byte untuk menyimpan beberapa karakter UTF8. -
Kumpulan selain
utf8_bin
akan lebih lambat karena urutan pengurutan tidak akan langsung dipetakan ke urutan pengkodean karakter), dan akan memerlukan terjemahan dalam beberapa prosedur tersimpan (sebagai variabel default keutf8_general_ci
pengumpulan). -
Jika Anda perlu
JOIN
Bidang UTF8 dan non-UTF8, MySQL akan menerapkan PARAH hit kinerja. Apa yang akan menjadi kueri sub-detik berpotensi memakan waktu menit jika bidang yang digabungkan adalah kumpulan karakter/kolasi yang berbeda.
Intinya:
Jika Anda tidak perlu mendukung bahasa non-Latin1, ingin mencapai performa maksimal, atau sudah memiliki tabel menggunakan latin1
, pilih latin1
.
Jika tidak, pilih UTF8
.