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