(6)mysql 中的字符集

概述

  從本質上來說,計算機只識別二進制代碼,所以,不論計算機程序仍是其處理的數據,最終都必須轉化爲二進制碼,計算機才能識別。人們給每個文字符號編碼以便計算機識別處理,這就是計算機字符集的由來。mysql

選擇合適的字符集

MySQL5.6支持幾十種字符集,包括UCS-二、UTF-1六、UTF-16LE、UTF-3二、UTF-八、utf8mb4等Unicode字符集,選擇字符集能夠考慮以下幾個因素:sql

  1. 知足應用支持語言需求,若是應用須要處理各式各樣的文字,應該選擇Unicode編碼,對於MySQL,建議爲UTF-8;
  2. 若是應用中涉及已有數據導入,要充分考慮數據庫字符集對已有數據的兼容性。
  3. 若是數據庫只須要支持通常中文,數據量大,性能要求較高,那能夠選擇雙字節定長編碼的中文字符集,好比GBK,由於相對於UTF-8,GBK比較小,每一個漢字只佔2個字節,utf-8漢字須要3個字節;相反,若是主要處理英文字符,選擇UTF-8更好,由於GBK,UCS-2,UTF-16中的西文字符編碼都是2個字節。
  4. 若是數據庫須要作大量的字符運算,選擇定長字符集更好一些。
  5. 若是全部的客戶端程序都支持相同的字符集,則優先選擇該字符集做爲數據庫的字符集。

經常使用字符集比較:
數據庫

字符集比較

MySQL字符集

  1. MySQL支持在同一臺服務器,同一個數據庫,甚至同一個表的不一樣字段均可以使用不一樣的字符集。
  2. MySQL字符集包括字符集校對規則;其中字符集用來定義MySQL存儲字符串的方式,校對規則用來定義字符串比較方式,字符集與校對規則是一對多的關係。
  3. MySQL有4個級別的默認設置:服務器級,數據庫級,表級,字段級。服務器級能夠在MySQL配置文件(my.cnf)中設置character-set-server=utf-8;其餘是建立時候設置。
  4. 對於實際應用中, 還存在客戶端和服務器之間的字符集和校對規則設置。MySQL提供3個參數設置:character_set_clientcharacter_set_connectioncharacter_set_results分別表明客戶端、鏈接、返回結果的字符集。一般不會單獨設置這3個參數,能夠經過命令:set names ***來設置,還能夠設置my.cnf中的default-character-set=utf-8來設置。

MySQL字符集系統變量含義以下:服務器

mysql字符集系統變量
相關文章
相關標籤/搜索