创建数据库时的三要素
现在各种基于MySQL数据库的开源框架非常多,基本上大家都是先安装再二次开发。
在安装开源框架的时候,需要先在MySQL里面新建一个数据库,新建数据库的时候需要确定三个重要的信息:
- Database name
- Database charset
- Database collation
这个三个信息中文直译和对应的意思分别是:
- Database name
数据库名称。就是新建的这个数据库的名字是什么。 - Database charset
数据库字符集。这个数据库使用哪种字符集存储数据库。对于中文项目或者可能包含非英语的国际语言的项目而言,一般都会选择UTF-8,这个基本上有点开发经验的人都应该知道。 - Database collation
数据库整理规则( 排序规则 )。这个选择起来可能就有些晕了,我们来看看可选项有哪些?
在众多选项中,多数人应该会在utf8_bin、utf8_general_ci、utf8_unicode_ci三者之间由于不定。
选哪个?
要想确定选哪个,其实看看三者的英文全称就能略知一二了。
- utf8_bin是utf8 binary的缩写。该种排序方式区分字母大小写。
- utf8_general_ci是utf8 general case insensitive的缩写。该种方式不区分字母大小写,排序效率高,且对绝大多数语言的字符能够做到有效的排序。
- utf8_unicode_ci是utf8_unicode case insensitive的缩写。不区分大小写,排序效率较utf8_general_ci而言稍低,但对语言字符排序的支持比utf8_general_ci更好。
所以
一般情况下,选择utf8_general_ci就可以了。这也是目前绝大多数项目的首选。
如果遇到某些涉及大量非主流外文的项目的,可以考虑使用utf8_unicode_ci编码。
utf8_bin由于区分大小写,除非有特殊的要求,一般不建议使用。