MySQL資料庫排序選擇的作用和該如何選擇編碼格式

來源:互聯網
上載者:User

標籤:style   http   color   os   ar   使用   sp   資料   on   

前言:在建立資料庫的時候,會有這樣一個選項->定序,平時在建立資料庫的時候並沒有注意,只是選擇了預設,也沒感覺有什麼問題,今天看到這個突然好奇起來,所以看了一些資料做了以下的一些總結,若有錯誤之處請斧正。

  這個定序的作用是什嗎?可以避免一些在資料庫匯入時出現的一些錯誤。很多時候在匯入資料庫的時候會出現字元亂碼的問題,但是如果定製編碼的話,就會更容易的發現問題。在mysql中我們經常使用的是utf8_unicode_ci和utf8_general_ci,兩者還是有一些區別的,當前,utf8_unicode_ci校對規則僅部分支援Unicode校對規則演算法。一些字元還是不能支援。並且,不能完全支援組合的記號。這主要影響越南和俄羅斯的一些少數民族語言,如:Udmurt 、Tatar、Bashkir和Mari。

  utf8_general_ci是一個遺留的 校對規則,不支援擴充。它僅能夠在字元之間進行逐個比較。這意味著utf8_general_ci校對規則進行的比較速度很快,但是與使用utf8_unicode_ci的 校對規則相比,比較正確性較差)。

  例如,使用utf8_general_ci和utf8_unicode_ci兩種 校對規則下面的比較相等: Ä = A Ö = O Ü = U 兩種校對規則之間的區別是,對於utf8_general_ci下面的等式成立: ß =   s 但是,對於utf8_unicode_ci下面等式成立: ß = ss 對於一種語言僅當使用utf8_unicode_ci排序做的不好時,才執行與具體語言相關的utf8字元集 校對規則。例如,對於德  語和法語,utf8_unicode_ci工作的很好,因此不再需要為這兩種語言建立特殊的utf8校對規則。 utf8_general_ci也適用與德語和法語,除了‘ß‘等於‘s‘,而不是‘ss‘之外。  如果你的應用能夠接受這些,那麼應該使用utf8_general_ci,因為它速度快。否則,使用utf8_unicode_ci,因為它比較準確。

  

  上面我們講到utf8_xxxx_ci,但是對於上面的編碼格式後面的ci還是有些不解,當然不只是ci,還有ki,wi什麼的,他們代表的是什麼尼?

  定序名稱由兩部份構成,前半部份是指本定序所支援的字元集
  如:
  Chinese_PRC_CS_AI_WS
  前半部份:指UNICODE字元集,Chinese_PRC_指標對大陸簡體字UNICODE的定序
  定序的後半部份即尾碼 含義:
  _BIN 二進位排序
  _CI(CS) 是否區分大小寫,CI不區分,CS區分
  _AI(AS) 是否區分重音,AI不區分,AS區分
  _KI(KS) 是否區分假名類型,KI不區分,KS區分
  _WI(WS) 是否區分寬度 WI不區分,WS

  

  現在對定序有一定的瞭解之後就明白自己需要那種編碼格式了,平時我都是使用utf8_general_ci,最好是做到編碼統一,就會減少資料庫亂碼這種情況的發生。。。

文章部分內容參考了http://www.jb51.net/article/48775.htm

 

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.