---
title: MySQL 模式字符集总结-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 MySQL 模式字符集总结相关的常见问题和使用技巧，帮助您快速解决 MySQL 模式字符集总结的难题。
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

划线反馈

# MySQL 模式字符集总结

更新时间：2026-05-18 09:11

适用版本： V2.2.x、V3.1.x、V3.2.x、V4.0.x、V4.1.x、V4.2.x 内容类型：TechNote  

本文简要描述 OceanBase 数据库 MySQL 模式下的字符集和字符序，以及与 MySQL 数据库的差异。

## 适用版本

OceanBase 数据库所有版本。

## UTF-8 字符集

OceanBase 数据库 MySQL 模式下的 UTF-8 字符集与 MySQL 数据库的差异：

- OceanBase 数据库 MySQL 模式仅支持 utf8mb4，UTF-8 可以使用 1~4 个字节来进行字符编码，mb4 即 most bytes 4，utf8mb4 使用 4 个字节来表示完整的 UTF-8。
 - MySQL 数据库的 utf8 编码最大字符长度为 3 字节，如果遇到 4 字节的宽字符就会插入异常。三个字节的 UTF-8 最大能编码的 [Unicode] 字符是 0xffff，也就是 Unicode 中的基本多文种平面（BMP）。也就是说，任何不在基本多文本平面的 Unicode 字符，都无法使用 utf8 字符集存储，包括 Emoji 表情（Emoji 是一种特殊的 Unicode 编码，常见于 ios 和 android 手机上），和很多不常用的汉字，以及任何新增的 Unicode 字符等等。

总结：utf8 是 utf8mb3，只有三个字节，节省空间但不能表达全部的 UTF-8。所以推荐使用utf8mb4。

## UTF-8 字符序

OceanBase 数据库 MySQL 模式下的 UTF-8 字符序：

- utf8mb4_bin：将字符串每个字符用二进制数据编译存储，区分大小写，而且可以存二进制的内容。
 - utf8mb4_unicode_ci：是基于标准的 Unicode 来排序和比较，能够在各种语言之间精确排序，Unicode 排序规则为了能够处理特殊字符的情况，实现了略微复杂的排序算法。
 - utf8mb4_general_ci：ci 即 case insensitive，不区分大小写。没有实现 Unicode 排序规则，在遇到某些特殊语言或者字符集，排序结果可能不一致。但是，在绝大多数情况下，这些特殊字符的顺序并不需要那么精确。

     - utf8mb4_general_ci 是一个遗留的校对规则，不支持扩展，它仅能够在字符之间进行逐个比较。
     - 较 utf8_general_ci 校对规则进行的比较速度很快，但是与使用 utf8mb4_unicode_ci 的校对规则相比，比较正确性较差。

总结：general_ci 更快，unicode_ci 更准确。但相比现在的 CPU 来说，它远远不足以成为考虑性能的因素，主要还需要考虑索引设计、SQL 设计等。使用者更应该关心字符集与排序规则在DB里需要统一。可能产生乱码的字段不要作为主键或唯一索引。例如：以 url 来作为唯一索引，但是它记录的有可能是乱码。

上一篇

[OceanBase 数据库 MySQL 模式中的字符序说明](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000000022)

下一篇

[如何为 Oracle 租户配置 GBK 字符集](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000001048) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
