在创建数据库时候,会有字符集和排序规则的选项,太多的选项,就算盲选也有些为难,下面我们一起简单了解下:
这里先说我的做法,然后简单说下原因
字符集:utf8mb4
排序规则:utf8mb4_general_ci
1. 字符集
首先大家比较了解的是 utf8,utf8mb4 兼容 utf8,且比 utf8 能表示更多的字符。在下面三个方面尤为突出(utf8mb4 字符集需要 5.5.3 版本以后的才支持)。
mb4 就是 most bytes 4 的意思,专门用来兼容四字节的 Unicode 。
主要有:Emoji 表情 、生僻字、新增的 Unicode 字符。
此外对于gb2312 而言,有些偏僻字不能保存。虽然能节约更多的空间,但是在当下的环境,存储空间已然没有那么珍贵,相反人力却更加的昂贵。
下面为 mysql 可用字符集表:
2. 排序规则
排序规则的组合:
_ci(大小写不敏感)、_cs(大小写敏感)、_bin(二进制)
_general_ci 校对速度快,但准确度稍差、_unicode_ci 准确度高,但校对速度稍慢。
一般建议用字符集的默认的排序规则。(请看上表)
关于命名的问题
- 数据库命名最好是只用英文、数组、下划线,(不要用短线 - )
- 表名和字段名用下划线链接多个单词 (user_id)
- 全部小写