utf8_unicode_ci校對規則僅部分支援Unicode校對規則算法,一些字元還是不能支援。
utf8_unicode_ci不能完全支援組合的記号。
utf8_general_ci是一個遺留的 校對規則,不支援擴充,它僅能夠在字元之間進行逐個比較。這意味着utf8_general_ci校對規則進行的比較速度很快,但是與使用 utf8_unicode_ci的校對規則相比,比較正确性較差。
應用上的差别
1、對于一種語言僅當使用utf8_unicode_ci排序做的不好時,才執行與具體語言相關的utf8字元集校對規則。例如,對于德語和法語,utf8_unicode_ci工作的很好,是以不再需要為這兩種語言建立特殊的utf8校對規則。
2、utf8_general_ci也适用與德語和法語,除了‘?’等于‘s’,而不是‘ss’之外。如果你的應用能夠接受這些,那麼應該使用 utf8_general_ci,因為它速度快。否則,使用utf8_unicode_ci,因為它比較準确。
用一句話概況上面這段話:utf8_unicode_ci比較準确,utf8_general_ci速度比較快。通常情況下 utf8_general_ci的準确性就夠我們用的了,在我看過很多程式源碼後,發現它們大多數也用的是utf8_general_ci,是以建立資料 庫時一般選用utf8_general_ci就可以了
在mysql中存在着各種utf8編碼格式,如下表:
1)utf8_bin
2)utf8_general_ci
3)utf8_general_cs
utf8_bin将字元串中的每一個字元用二進制資料存儲,區分大小寫。
utf8_genera_ci不區分大小寫,ci為case insensitive的縮寫,即大小寫不敏感。
utf8_general_cs區分大小寫,cs為case sensitive的縮寫,即大小寫敏感
轉載自:http://china.ygw.blog.163.com/blog/static/6871974620132220289638/