Предимства на UTF8:
-
Поддържа повечето езици, включително RTL езици, като иврит.
-
Не е необходим превод при импортиране/експортиране на данни към компоненти, поддържащи UTF8 (JavaScript, Java и др.).
Недостатъци на UTF8:
-
Не-ASCII знаците ще отнеме повече време за кодиране и декодиране, поради тяхната по-сложна схема за кодиране.
-
Не-ASCII знаците ще заемат повече място, тъй като могат да бъдат съхранени с повече от 1 байт (символи, които не са в първите 127 знака от набора ASCII знаци). A
CHAR(10)
илиVARCHAR(10)
полето може да се нуждае от до 30 байта, за да съхранява някои UTF8 символи. -
Съпоставяния, различни от
utf8_bin
ще бъде по-бавно, тъй като редът на сортиране няма да се съпостави директно с реда на кодиране на знаци и ще изисква превод в някои съхранени процедури (като променливи по подразбиране саutf8_general_ci
съпоставяне). -
Ако трябва да
JOIN
UTF8 и не-UTF8 полета, MySQL ще наложи ТЕЖКО хит на производителността. Това, което биха били заявки под секунда, потенциално може да отнеме минути ако присъединените полета са различни набори от знаци/съпоставяне.
Долен ред:
Ако не е необходимо да поддържате езици, различни от Latin1, искате да постигнете максимална производителност или вече имате таблици, използващи latin1
, изберете latin1
.
В противен случай изберете UTF8
.