Mysql中校對集utf8_unicode_ci與utf8_general_ci的區(qū)別說明
更新時(shí)間:2012年03月25日 19:46:23 作者:
一直對utf8_unicode_ci與utf8_general_ci這2個(gè)校對集很迷惑,今天查了手冊有了點(diǎn)眉目。不過對中文字符集來說采用utf8_unicode_ci與utf8_general_ci時(shí)有何區(qū)別還是不清楚
下面摘錄一下Mysql 5.1中文手冊中關(guān)于utf8_unicode_ci與utf8_general_ci的說明:
當(dāng)前,utf8_unicode_ci校對規(guī)則僅部分支持Unicode校對規(guī)則算法。一些字符還是不能支持。并且,不能完全支持組合的記號。這主要影響越南和俄羅斯的一些少數(shù)民族語言,如:Udmurt 、Tatar、Bashkir和Mari。
utf8_unicode_ci的最主要的特色是支持?jǐn)U展,即當(dāng)把一個(gè)字母看作與其它字母組合相等時(shí)。例如,在德語和一些其它語言中‘ß'等于‘ss'。
utf8_general_ci是一個(gè)遺留的 校對規(guī)則,不支持?jǐn)U展。它僅能夠在字符之間進(jìn)行逐個(gè)比較。這意味著utf8_general_ci校對規(guī)則進(jìn)行的比較速度很快,但是與使用utf8_unicode_ci的 校對規(guī)則相比,比較正確性較差)。
例如,使用utf8_general_ci和utf8_unicode_ci兩種 校對規(guī)則下面的比較相等:
Ä = A
Ö = O
Ü = U
兩種校對規(guī)則之間的區(qū)別是,對于utf8_general_ci下面的等式成立:
ß = s
但是,對于utf8_unicode_ci下面等式成立:
ß = ss
對于一種語言僅當(dāng)使用utf8_unicode_ci排序做的不好時(shí),才執(zhí)行與具體語言相關(guān)的utf8字符集 校對規(guī)則。例如,對于德語和法語,utf8_unicode_ci工作的很好,因此不再需要為這兩種語言創(chuàng)建特殊的utf8校對規(guī)則。
utf8_general_ci也適用與德語和法語,除了‘ß'等于‘s',而不是‘ss'之外。如果你的應(yīng)用能夠接受這些,那么應(yīng)該使用utf8_general_ci,因?yàn)樗俣瓤?。否則,使用utf8_unicode_ci,因?yàn)樗容^準(zhǔn)確。
當(dāng)前,utf8_unicode_ci校對規(guī)則僅部分支持Unicode校對規(guī)則算法。一些字符還是不能支持。并且,不能完全支持組合的記號。這主要影響越南和俄羅斯的一些少數(shù)民族語言,如:Udmurt 、Tatar、Bashkir和Mari。
utf8_unicode_ci的最主要的特色是支持?jǐn)U展,即當(dāng)把一個(gè)字母看作與其它字母組合相等時(shí)。例如,在德語和一些其它語言中‘ß'等于‘ss'。
utf8_general_ci是一個(gè)遺留的 校對規(guī)則,不支持?jǐn)U展。它僅能夠在字符之間進(jìn)行逐個(gè)比較。這意味著utf8_general_ci校對規(guī)則進(jìn)行的比較速度很快,但是與使用utf8_unicode_ci的 校對規(guī)則相比,比較正確性較差)。
例如,使用utf8_general_ci和utf8_unicode_ci兩種 校對規(guī)則下面的比較相等:
Ä = A
Ö = O
Ü = U
兩種校對規(guī)則之間的區(qū)別是,對于utf8_general_ci下面的等式成立:
ß = s
但是,對于utf8_unicode_ci下面等式成立:
ß = ss
對于一種語言僅當(dāng)使用utf8_unicode_ci排序做的不好時(shí),才執(zhí)行與具體語言相關(guān)的utf8字符集 校對規(guī)則。例如,對于德語和法語,utf8_unicode_ci工作的很好,因此不再需要為這兩種語言創(chuàng)建特殊的utf8校對規(guī)則。
utf8_general_ci也適用與德語和法語,除了‘ß'等于‘s',而不是‘ss'之外。如果你的應(yīng)用能夠接受這些,那么應(yīng)該使用utf8_general_ci,因?yàn)樗俣瓤?。否則,使用utf8_unicode_ci,因?yàn)樗容^準(zhǔn)確。
相關(guān)文章
MySQL錯(cuò)誤提示:sql_mode=only_full_group_by完美解決方案
有時(shí)候遇到數(shù)據(jù)庫重復(fù)數(shù)據(jù),需要將數(shù)據(jù)進(jìn)行分組,并取出其中一條來展示,這時(shí)就需要用到group by語句,下面這篇文章主要給大家介紹了關(guān)于MySQL錯(cuò)誤提示:sql_mode=only_full_group_by的完美解決方案,需要的朋友可以參考下2022-10-10MySQL中利用索引對數(shù)據(jù)進(jìn)行排序的基礎(chǔ)教程
這篇文章主要介紹了MySQL中利用索引對數(shù)據(jù)進(jìn)行排序的基礎(chǔ)教程,需要的朋友可以參考下2015-11-11MySQL數(shù)據(jù)庫遷移data文件夾位置詳細(xì)步驟
這篇文章主要介紹了MySQL數(shù)據(jù)庫遷移data文件夾詳細(xì)步驟,需要的朋友可以參考下2014-03-03MySQL獲取binlog的開始時(shí)間和結(jié)束時(shí)間(最新方法)
這篇文章主要介紹了MySQL如何獲取binlog的開始時(shí)間和結(jié)束時(shí)間,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05mysql優(yōu)化連接數(shù)防止訪問量過高的方法
這篇文章主要介紹了mysql優(yōu)化連接數(shù)防止訪問量過高的方法,需要的朋友可以參考下2014-06-06MySQL execute、executeUpdate、executeQuery三者的區(qū)別
這篇文章主要介紹了MySQL execute、executeUpdate、executeQuery三者的區(qū)別的相關(guān)資料,需要的朋友可以參考下2017-05-05