utf8mb4_bin和utf8mb4_general_ci
时间: 2023-10-18 14:06:07 浏览: 55
utf8mb4_bin和utf8mb4_general_ci是MySQL数据库中的字符集和排序规则。它们的区别在于对字符的比较方式。
utf8mb4_bin是一种二进制存储方式,它区分大小写。这意味着在比较字符时,它会严格按照字符的二进制形式进行比较,不考虑字符的大小写。
而utf8mb4_general_ci是一种不区分大小写的存储方式。它会将字符转换为小写形式后再进行比较。这意味着在比较字符时,它会忽略字符的大小写,所以"abc"和"ABC"会被认为是相等的。
相关问题
utf8_general_ci和utf8mb4_bin
utf8_general_ci和utf8mb4_bin是MySQL中两种不同的字符集和排序规则。
utf8_general_ci是针对utf8字符集的排序规则,它对大小写不敏感,将加重音和未加重音的字母按相同的顺序排序。
utf8mb4_bin是针对utf8mb4字符集的排序规则,它直接将字符的二进制值进行比较,大小写敏感,排序结果与字符的二进制编码有关。
在MySQL中,使用哪种字符集和排序规则取决于实际需求和应用场景。一般来说,当需要对字符串进行模糊搜索或排序时,选择utf8_general_ci排序规则比较合适;而当需要精确匹配或按照字节顺序排序时,选择utf8mb4_bin比较适合。
怎么选utf8mb4_general_ci、utf8mb4_unicode_ci、utf8mb4_bin
在选择 utf8mb4_general_ci、utf8mb4_unicode_ci、utf8mb4_bin 时,需要考虑到以下几个方面:
1.排序规则:utf8mb4_general_ci 和 utf8mb4_unicode_ci 都是根据 Unicode 字符集进行排序,但是 utf8mb4_general_ci 比 utf8mb4_unicode_ci 更快,但是 utf8mb4_unicode_ci 更准确。而 utf8mb4_bin 则是根据二进制值进行排序。
2.大小写敏感:utf8mb4_general_ci 和 utf8mb4_unicode_ci 都是不区分大小写的,而 utf8mb4_bin 则是区分大小写的。
3.适用场景:utf8mb4_general_ci 适用于一些不需要太高精度的场景,例如注册用户名和邮箱等。而 utf8mb4_unicode_ci 则适用于需要更高精度的场景,例如多语言网站。而 utf8mb4_bin 则适用于需要精确匹配二进制值的场景。
因此,在选择 utf8mb4_general_ci、utf8mb4_unicode_ci、utf8mb4_bin 时,需要根据具体的应用场景和需求来进行选择。