You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MariaDB修改含JSON列的表排序规则:是否影响JSON列及可用性?

MariaDB JSON列排序规则修改问题解答

会不会修改JSON列的排序规则?

会。MariaDB里的JSON类型本质是LONGTEXT COLLATE utf8mb4_bin的别名,当执行ALTER TABLE table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;时,这个操作会统一调整表内所有列的字符集和排序规则——包括JSON列。执行完成后,查看列定义就能发现,JSON列的排序规则已经从默认的utf8mb4_bin变成了utf8mb4_unicode_520_ci。

会不会影响JSON列的可用性?

不会影响核心可用性,具体分析如下:

  • JSON列的核心功能(比如JSON_EXTRACT、JSON_SET这类JSON处理函数)只关心数据的JSON结构,和排序规则无关,这些功能仍能正常工作。
  • 排序规则变更只会改变字符串比较的行为(比如原本utf8mb4_bin是大小写敏感,utf8mb4_unicode_520_ci是大小写不敏感),但不会修改JSON数据本身的存储内容。如果你的业务没有依赖原排序规则做字符串比较逻辑,完全不会有问题;要是有相关依赖,只需要评估比较逻辑的变化是否符合业务预期即可。

如果之后想把JSON列改回默认的utf8mb4_bin排序规则,直接执行ALTER TABLE table MODIFY COLUMN json_column JSON;就行,因为JSON类型的默认排序规则就是utf8mb4_bin,这条语句会重置列的排序规则到默认值。

内容的提问来源于stack exchange,提问作者Alexander Presber

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 10:07:32