Mysql 为通用字符选择表排序规则

Mysql 为通用字符选择表排序规则,mysql,mariadb,collation,Mysql,Mariadb,Collation,我正在开发一个需要存储通用字符的后端 为此,我选择了utf8mb4表编码。我也要选择表排序 最简单的选择是选择utf8mb4\u general\u ci表排序规则。除了一般的校勘外,还有大约20种其他校勘可供选择。。更具体的目的是什么?utf8mb4\u general\u ci或utf8mb4\u unicode520\u ci是否涵盖所有这些?如果我想存储从中文到阿拉伯的各种字符,我应该使用哪一种呢。 …general\u ci很简单。它不会将2个字符的组合(例如带有非间距标记)等同于单个

我正在开发一个需要存储通用字符的后端

为此,我选择了
utf8mb4
表编码。我也要选择表排序

最简单的选择是选择
utf8mb4\u general\u ci
表排序规则。除了一般的校勘外,还有大约20种其他校勘可供选择。。更具体的目的是什么?
utf8mb4\u general\u ci
utf8mb4\u unicode520\u ci
是否涵盖所有这些?如果我想存储从中文到阿拉伯的各种字符,我应该使用哪一种呢。

  • …general\u ci
    很简单。它不会将2个字符的组合(例如带有非间距标记)等同于单个字符的等效组合

  • …unicode\u 520\u ci
    来自unicode版本5.20,这是MySQL开始使用的最新版本。它可以处理一些事情,比如对表情符号进行排序,这是以前的版本所没有的

  • 对于MySQL 8.0,首选的排序规则是基于Unicode 9.0的utf8mb4_0900_ai_ci

  • …\u ci
    处理给定语言中的变体。例如,西班牙语中的
    ch
    ll
    是否应被视为“字母”,并在
    cz
    d
    之间排序,以及
    lz
    m
    之间排序

  • 对于一般用途,不要使用
    …general\u ci
    ,请使用源自Unicode的最新版本。对于特定于语言的情况,请选择其他排序规则之一

  • 我确实知道汉语和阿拉伯语在不同的排序规则中是如何(甚至是否)排序的。但是,我看到了
    …person\u ci
    ,因此我怀疑存在问题

  • 一定要使用
    utf8mb4
    ,不要使用
    utf8
    ,尤其是因为你需要中文

检查答案