当前位置: 首页 > news >正文

utf8mb4_bin 与 utf8mb4_generate_cli区别

在 MySQL 中,utf8mb4_bin 和 utf8mb4_general_ci 是两种不同的字符集排序规则(collation),主要区别体现在排序方式大小写 /accent(重音符号)敏感性上,适用于不同的业务场景。

1. 核心区别

特性utf8mb4_binutf8mb4_general_ci
排序方式按字符的二进制编码值排序按通用规则排序(不严格区分细节)
大小写敏感性敏感(A ≠ a不敏感(A = a
重音符号敏感性敏感(é ≠ e不敏感(é = e
适用场景需精确匹配(如密码、唯一标识)常规文本查询(如用户名、内容搜索)

2. 详细说明

(1)utf8mb4_bin
  • 二进制排序:直接根据字符的 Unicode 编码值(二进制)进行比较和排序。例如:
    • 'A'(编码 0x41)和 'a'(编码 0x61)被视为不同字符。
    • 'é'(编码 0xC3A9)和 'e'(编码 0x65)被视为不同字符。
  • 精确匹配:适合需要严格区分大小写、重音的场景,例如:
    • 存储密码哈希值(需精确比对)。
    • 存储唯一标识符(如 API 密钥)。
    • 场景示例:查询 WHERE username = 'User123' 时,不会匹配 'user123'
(2)utf8mb4_general_ci
  • 大小写不敏感(Case-Insensitive)ci 即 Case Insensitive,查询时会忽略大小写。例如:
    • 'A' 和 'a' 被视为相同字符。
    • 查询 WHERE name = 'apple' 会匹配 'Apple''APPLE' 等。
  • 重音不敏感:忽略字母上的重音符号(如法语、西班牙语中的字符)。例如:
    • 'é''è''e' 被视为相同字符。
  • 通用排序:排序规则较简单,性能较好,但可能不符合某些语言的精细排序需求(如德语、法语的特殊排序规则)。
  • 适用场景:常规文本查询,如用户名、文章标题、商品名称等,希望查询时不区分大小写和重音。

3. 选择建议

  • 若需要精确匹配(如密码、唯一标识),或需区分大小写 / 重音,选择 utf8mb4_bin
  • 若需模糊查询(如用户搜索、用户名登录不区分大小写),选择 utf8mb4_general_ci

补充说明

  • 还有更精细的排序规则,如 utf8mb4_unicode_ci,它遵循 Unicode 标准排序,支持更多语言的特殊排序规则,但性能略低于 utf8mb4_general_ci
  • 排序规则是针对字符集(如 utf8mb4)的补充,utf8mb4 是 MySQL 中支持 Emoji 和所有 Unicode 字符的字符集,而排序规则决定了字符如何比较和排序。

创建数据库的时候,可以选择不同的编码,进行细分。

http://www.dtcms.com/a/392406.html

相关文章:

  • CAN总线学习(一)CAN总线通讯&硬件电路
  • 13. LangChain4j + 加入检索增加生成 RAG(知识库)
  • TriggerRecovery
  • OpenAI 开源 GPT-oss 模型:从闭源到开源的模型架构创新之路
  • 微服务技术栈一文串讲
  • 从浅入深:自编码器(AE)与变分自编码器(VAE)的核心原理与Pytorch代码讲解
  • 低功耗超宽带收发器:DW1000设备驱动API指南
  • 2012/07 JLPT听力原文 问题四
  • Redis最佳实践——性能优化技巧之集群与分片
  • springboot的注解
  • iOS App 混淆与热更新兼容实战 混淆后如何安全可靠地推送热修复(Hotfix)与灰度回滚
  • 从 0 到 1 保姆级实现C语言双向链表
  • 2 IP地址规划与设计案例分析
  • Vue 中 8 种组件通信方式
  • 十三、vue3后台项目系列——sidebar的实现,递归组件
  • LeetCode 383 - 赎金信
  • compose multiplatform reader3
  • Redis 入门与实践
  • 【OpenGL】texture 纹理
  • agentscope以STUDIO方式调用MCP服务
  • 无公网 IP 访问群晖 NAS:神卓 N600 的安全解决方案(附其他方法风险对比)
  • Redis最佳实践——性能优化技巧之Pipeline 批量操作
  • Java-130 深入浅出 MySQL MyCat 深入解析 核心配置文件 server.xml 使用与优化
  • 业主信息查询功能测试指南
  • WinDivert学习文档之四-————卸载
  • 分布式链路追踪关键指标实战:精准定位服务调用 “慢节点” 全指南(二)
  • DuckDB客户端API之ADBC官方文档翻译
  • 区块链技术应用开发:智能合约进阶与多链生态落地实践
  • 分布式专题——13 RabbitMQ之高级功能
  • 神经风格迁移(Neural Style Transfer)