資料庫建庫時字符集和排序規則的選擇

左耳听风發表於2024-09-13

引言
在MySQL新建一個資料庫的時候,第一步就是要選擇字符集和排序規則,那你是否真正懂得什麼是字符集?什麼是排序規則?在新建一個資料庫的過程中,選擇什麼字符集和排序規則最適合?

什麼是字符集?如何選擇字符集?
字符集就是多個字元的集合,比如詩集裡面就包含了詩,文集裡面就包含了不同的文章,而不同的字符集裡面就包含了不同的字元,也就能夠支援儲存不同型別的資料。
MySQL常用的字符集如下:

GBK:支援中文,但是不是國際通用字符集
UTF-8:支援中英文混合場景,是國際通用字符集
latin1:MySQL預設字符集
utf8mb4:完全相容UTF-8,用四個位元組儲存更多的字元

如果只做國內業務,為了效能考慮可以選擇GBK;
但哪個公司沒有一個國際化的夢想,為了將來考慮,選擇utf8mb4更合適,它能完全相容UTF-8並且有其它優勢。

什麼是排序規則?如何選擇排序規則?
排序規則是指定字符集下字元間的比較規則。
一些常用的命名規則如下:

_ci :結尾表示大小寫不敏感 (caseinsensitive)
_cs :表示大小寫敏感 (case sensitive)
_bin :表示二進位制的比較 (binary)

常見字符集utf8mb4對應的常用排序規則如下:

utf8mb4_general_ci :不區分大小寫, 校對速度快, 但準確度稍差。
utf8mb4_bin::字串每個字串用二進位制資料編譯儲存。 區分大小寫,而且可以存二進位制的內容。
utf8mb4_unicode_ci:不區分大小寫, 校準確度高,但校對速度稍慢。

通常情況下, 新建資料庫時一般選用 utf8_general_ci 就可以了。

結論
新建資料庫時,通常字符集可以選擇utf8mb4,排序規則可以選擇utf8_general_ci。
因為utf8mb4支援中文並且是國際通用字符集,而utf8_general_ci不區分大小寫, 校對速度快。

相關文章