mysql中的utf8mb4、utf8mb4_unicode_ci、utf8mb4_general_ci

來源:互聯網
上載者:User

標籤:使用   需要   bytes   之間   效能   應該   增加   排序   utf8   

1.utf8與utf8mb4(utf8 most bytes 4)
  • MySQL 5.5.3之後增加了utfmb4字元編碼
  • 支援BMP(Basic Multilingual Plane,基本多文種平面)和補充字元
  • 最多使用四個位元組儲存字元

utf8mb4是utf8的超集並完全相容utf8,能夠用四個位元組儲存更多的字元。

標準的UTF-8字元集編碼是可以使用1-4個位元組去編碼21位字元,這幾乎包含了世界上所有能看見的語言。
MySQL裡面實現的utf8最長使用3個字元,包含了大多數字元但並不是所有。例如emoji和一些不常用的漢字,如“墅”,這些需要四個位元組才能編碼的就不支援。

2.字元集、串連字元集、排序字元集

utf8mb4對應的排序字元集有utf8mb4_unicode_ci、utf8mb4_general_ci.

utf8mb4_unicode_ci和utf8mb4_general_ci的對比:

  • 準確性:
    • utf8mb4_unicode_ci是基於標準的Unicode來排序和比較,能夠在各種語言之間精確排序
    • utf8mb4_general_ci沒有實現Unicode定序,在遇到某些特殊語言或者字元集,排序結果可能不一致。
    • 但是,在絕大多數情況下,這些特殊字元的順序並不需要那麼精確。
  • 效能
    • utf8mb4_general_ci在比較和排序的時候更快
    • utf8mb4_unicode_ci在特殊情況下,Unicode定序為了能夠處理特殊字元的情況,實現了略微複雜的排序演算法。
    • 但是在絕大多數情況下發,不會發生此類複雜比較。相比選擇哪一種collation,使用者更應該關心字元集與定序在db裡需要統一。

mysql中的utf8mb4、utf8mb4_unicode_ci、utf8mb4_general_ci

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.