(6)mysql中的字元集

來源:互聯網
上載者:User

標籤:mysql   字元集   系統變數   亂碼   

概述

??從本質上來講,電腦只識別二進位代碼,因此,不論電腦程式還是其處理的資料,最終都必須轉化為二進位碼,電腦才能識別。人們給每一個文字元號編碼以便電腦識別處理,這就是電腦字元集的由來。

選擇合適的字元集

MySQL5.6支援幾十種字元集,包括UCS-2、UTF-16、UTF-16LE、UTF-32、UTF-8、utf8mb4等Unicode字元集,選擇字元集可以考慮如下幾個因素:

  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字元集系統變數含義如下:

(6)mysql中的字元集

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.