记录一次数据库设置了utf8mb4仍然插入不仅如此emoji符号的问题

               以前插入emogi符号时候,一般是把库表设置为utf8mb4就行了。但是昨天上完线发现有同事使用了下面的sql:

       

             alter table mactalk_act convert to character set utf8mb4 collate utf8mb4_bin;

 

            更改后虽然可以插入emoji了,但是出现了超多的接口超时问题。最后网上查询说是修改了字符集后会导致索引失效,导致全表扫描的问题。用这个sql在测试环境看了下执行效率,果然是全表扫描了。但是如果改回来,则又不支持表情符号了。

           然后看了下系统变量:

           

          show variables like "%char%"

        发现几个系统变量都还是utf8;

         

     

 

         想了下应该是以前创建的,导致现在的字符集不同导致的。解决办法是全局去修改字符集,然后把原来的表的utf8的统一修改为utf8mb4;但是这个是一个比较大的事情;一步步修改来吧。

   参考:https://zhuanlan.zhihu.com/p/398661275

posted @ 2022-07-01 13:43  Doyourself!  阅读(142)  评论(0编辑  收藏  举报