OceanBase OLAP collation utf8mb4_bin 优先

本文讨论了在大数据系统中使用utf8mb4_bin排序规则的优势,尤其是在OceanBaseMySQL租户模式中,通过设置collation_connection和collation_server为utf8mb4_bin可以显著提高查询效率。实测结果显示,使用bin排序性能提升明显,尤其在大量数据操作时性能提升比例可达15%以上。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在大数据系统中,如无特别需要,建议 collation 指定为 utf8mb4_bin。

utf8mb4_bin是一种二进制的排序规则,比较字符串时直接比较字符串的二进制值,不需要进行复杂的字符比较和排序运算,这样可以有效减少CPU的使用,提高查询效率,特别是在涉及到大量数据操作时,性能优势更为明显。

在 AP 场景使用 OceanBase MySQL 租户模式时你可以在租户级别设置这两个值作为默认配置,以获得最佳的默认性能:

set global collation_connection = utf8mb4_bin;
set global collation_server = utf8mb4_bin;

utf8mb4 是编码格式,设置 collation 为 bin 不会影响内存的存储格式,不会造成字符集不兼容等问题,它仅仅影响排序过程中的排序规则。

使用 bin 排序和不使用 bin 排序的详细对比如下,可以看到,使用 bin 排序,性能可以提升 15%。按照我的经验,在实际应用场景中,性能提升比例可能更大!


OceanBase(admin@test)>show variables like 'collation_server';
+------------------+--------------------+
| Variable_name    | Value              |
+------------------+--------------------+
| collation_server | utf8mb4_general_ci |
+------------------+--------------------+
1 row in set (0.007 sec)


OceanBase(admin@test)>create table t1 (c1 bigint primary key, c2 varchar(10));
Query OK, 0 rows affected (0.102 sec)


OceanBase(admin@test)>create table t2 (c1 bigint primary key, c2 varchar(10)) charset=utf8mb4 collate=utf8mb4_bin;
Query OK, 0 rows affected (0.089 sec)

OceanBase(admin@test)>show <
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值