• 字符集选择

    一般选择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 准确度高,但校对速度稍慢