数据库表排序规则不一致的影响

Blade 未结 1 10

一、该问题的重现步骤是什么?

情况说明:目前用的mysql8数据库表,字符集是bladex-doc文档中推荐的utf8mb4。开发过程中由于后期创建的库表设置了其他排序规则,导致数据库表及部分表的字段,现在的排序规则存在三种类型:

     utf8mb4_general_ci(bladex-doc文档推荐的,目前有几十张)

     utf8mb4_unicode_ci(自建的几十

     utf8mb4_0900_ai_ci(自建的几十张)


问题说明:

1. 有推荐修改成哪种排序规则吗?按mysql8及现有的情况,是不是统一修改为utf8mb4_0900_ai_ci会更好一点?

2. 请问要如何批量修改表和表字段的排序规则,修改成统一的排序规则?

3. 如果批量修改成同一个排序规则,对库表里已有的记录是否有影响?



二、你期待的结果是什么?实际看到的又是什么?


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

bladex企业版4.8,linux


四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

1条回答
  • utf8mb4_general_ci是为了需要考虑到适配目前还在用mysql5.x的用户,兼容性强一点。

    如果你们后续只会用mysql8,那么用utf8mb4_0900_ai_ci更好一点。


    关于修改排序的问题

    已有数据内容本身不会丢失或损坏,但是修改之前最好先全表备份以防止突发情况的出现。

    另外极少数场景下排序顺序可能略有变化,MODIFY COLUMN 会重建该列的索引,大表执行时间较长跨表 JOIN。



    0 讨论(0)
提交回复