15、字符集的选择
由于數據庫中存儲的數據大部分都是各種文字,所以字符集對數據庫的存儲、處理性能,以及日后系統的移植、推廣都會有影響。對數據庫來說,字符集非常重要。不論是在 MySQL 數據庫還是其它數據庫,都存在字符集的選擇問題。
如果在創建數據庫時沒有正確選擇字符集,在后期就可能需要更換字符集,而更換字符集是代價比較高的操作,也存在一定的風險。所以推薦在應用開始階段,就按照實際需求,正確的選擇合適的字符集,避免后期不必要的調整。
我們了解到目前 MySQL 5.7 支持幾十種字符集,包括 UCS-2、UTF-16、UTF-16LE、UTF-32、 UTF-8 和 utf8mb4 等 Unicode 字符集。那么面對眾多的字符集,我們該如何選擇呢?
在選擇數據庫字符集時,可以根據應用的需求,結合字符集的特點來權衡,主要考慮以下幾方面的因素。
因為,相對于 UTF-8 而言,GBK 比較“小”,每個漢字只占 2 個字節,而 UTF-8 漢字編碼需要 3 個字節,這樣可以減少磁盤 I/O、數據庫 Cache 以及網絡傳輸的時間,從而提高性能。相反,如果應用主要處理英文字符,僅有少量漢字數據,那么選擇 UTF-8 更好,因為 GBK、UCS-2、UTF-16 的西文字符編碼都是 2 個字節,會造成很多不必要的開銷。
拓展
有很多字符集都可以保存漢字,比如 UTF-8、GB2312、GBK、Latin1 等等。但是常用的是 GB2312 和 GBK。因為 GB2312 字庫比 GBK 字庫小,有些偏僻字(例如:洺)不能保存,因此在選擇字符集的時候一定要權衡這些偏僻字出現的幾率,一般情況下,最好選用 GBK。
總結
- 上一篇: 1、user权限表详解
- 下一篇: 2、 db、tables_priv、co