- 字符集选择
一般选择utf8 utf8mb4 区别在于: utf8mb4兼容utf8,且比utf8能表示更多的字符,但是所占空间更大。
包含以下字符考虑选择utf8mb4:
- 【FFF0-FFFF】 Specials 特殊区域
- 【10000-1007F】 Linear B Syllabary 线形文字B音节文字
- 【10080-100FF】 Linear B Ideograms 线形文字B表意文字
- 【10100-1013F】 Aegean Numbers 爱琴数字
- 【10140-1018F】 Ancient Greek Numbers 古希腊数字
- 【10300-1032F】 Old Italic 古意大利文
- 【10330-1034F】 Gothic 哥特文
- 【10380-1039F】 Ugaritic 乌加里特楔形文字
- 【103A0-103DF】 Old Persian 古波斯文
- 【10400-1044F】 Deseret 犹他大学音标
- 【10450-1047F】 Shavian 肃伯纳字母
- 【10480-104AF】 Osmanya
- 【10800-1083F】 Cypriot Syllabary 塞浦路斯音节文字
- 【10900-1091F】 Phoenician 腓尼基字母
- 【10A00-10A5F】 Kharoshthi 佉卢字母
- 【12000-123FF】 Cuneiform 楔形文字
- 【12400-1247F】 Cuneiform Numbers and Punctuation 楔形文字数字及标点
- 【1D000-1D0FF】 Byzantine Musical Symbols 东正教音乐符号
- 【1D100-1D1FF】 Musical Symbols 音乐符号
- 【1D200-1D24F】 Ancient Greek Musical Notation 古希腊音乐谱记号
- 【1D300-1D35F】 Tai Xuan Jing Symbols 太玄经符号
- 【1D360-1D37F】 Counting Rod Numerals 算筹记数式
- 【1D400-1D7FF】 Mathematical Alphanumeric Symbols 数学用字母数字符号
- 【20000-2A6DF】 CJK Unified Ideographs Extension B 中日韩统一表意文字扩充B
- 【2F800-2FA1F】 CJK Compatibility Ideographs Supplement 中日韩兼容表意文字补充
- 【E0000-E007F】 Tags 语言编码卷标
- 【E0100-E01EF】 Variation Selectors Supplement 字型变换选取器补充
- 【FFF80-FFFFF】 Supplementary Private Use Area-A 补充专用区-A
- 【10FF80-10FFFF】 Supplementary Private Use Area-B 补充专用区-B
- 排序选择
- 排序一般分为两种: utf_bin和utf_general_ci
- utf_bin 是二进制, a 和 A 会别区别对待
例如你运行: SELECT * FROM table WHERE txt = ‘a’;
那么在utf8_bin中你就找不到 txt = ‘A’ 的那一行, 而 utf8_general_ci 则可以
- utf8_bin: 字符串每个字符串用二进制数据编译存储。 区分大小写,而且可以存二进制的内容
- utf8_general_cs 区分大小写,如果用户名和邮箱用这个 就会照成不良后果
- utf8_general_ci 不区分大小写,这个你在注册用户名和邮箱的时候就要使用
- utf8_unicode_ci和utf8_general_ci 对中、英文来说没有实质的差别
- utf8_general_ci 校对速度快,但准确度稍差(准确度够用,一般建库选择这个)
- utf8_unicode_ci 准确度高,但校对速度稍慢
