This is only to answer the first question > Why are there different levels of MySQL collation/charsets? There are two good reasons for different character sets and collations #Reason #1 : Disk Space When you run this query SELECT maxlen, GROUP_CONCAT(CHARACTER_SET_NAME) CharSets, COUNT(1) CharSetCount FROM information_schema.character_sets GROUP BY maxlen\G You get this: mysql> SELECT -> maxlen, -> GROUP_CONCAT(CHARACTER_SET_NAME) CharSets, -> COUNT(1) CharSetCount -> FROM information_schema.character_sets -> GROUP BY maxlen\G *************************** 1. row *************************** maxlen: 1 CharSets: cp1257,cp850,binary,koi8r,latin2,ascii,tis620,koi8u,greek,armscii8,keybcs2,macroman,latin7,cp1251,cp1256,dec8,hp8,geostd8,latin1,swe7,hebrew,cp1250,latin5,cp866,macce,cp852 CharSetCount: 26 *************************** 2. row *************************** maxlen: 2 CharSets: big5,cp932,sjis,gbk,ucs2,euckr,gb2312 CharSetCount: 7 *************************** 3. row *************************** maxlen: 3 CharSets: eucjpms,ujis,utf8 CharSetCount: 3 *************************** 4. row *************************** maxlen: 4 CharSets: utf16,utf32,utf8mb4 CharSetCount: 3 4 rows in set (0.00 sec) mysql> Some character sets have a Maximum Length of 1 byte to represent a character. Other need more. Give this information, you may want to refrain from using the eucjpms, ujis, utf8, utf16, utf32, utf8mb4 character sets so that VARCHAR and TEXT data takes less space on disk. #Reason #2 : Internationalization Characters Sets Each Come With One or More Collations to cover a variety of Languages When you run this query SELECT A.CHARACTER_SET_NAME, GROUP_CONCAT(COLLATION_NAME) Collations, COUNT(1) CollationCount FROM information_schema.character_sets A INNER JOIN information_schema.collations B USING (CHARACTER_SET_NAME) GROUP BY A.CHARACTER_SET_NAME\G You will see that some Characters Sets have with multiple collations for Different Parts of Europe. Chinese, Japanese, Greek, and parts of Asia Minor and Scandinavia are also available.