UTF-8 representation in MySQL
Start your free 7-days trial now!
MySQL’s actual equivalent of
utf-8 is a character set known as
utf8mb4. You should never use utf-8 since this can lead to troubling inconsistencies when changing vendors.
utf-8 still exists is for backward compatibility with previous versions of MySQL.
Although in other programming languages
utf-8 characters usually require 1 to 4 bytes to store, MySQL simply assumes all characters to be 3 bytes in
utf8mb4. This means that some characters are omitted from MySQL’s version of
In MySQL, the key length limit is 1000 bytes.
VARCHAR(500) would result in an error since MySQL will assume 500 x 3 = 1500 bytes. On the other hand,
VARCHAR(300) is considered to be valid since we are still below the 1000 bytes limit.