美文网首页js css html
MySQL系列~字符集详解

MySQL系列~字符集详解

作者: 开心的蛋黄派 | 来源:发表于2023-11-23 17:23 被阅读0次

    说明

    1 字符集分为字符集和具体的字符集排序规则

        字符集utf8mb4,字符集规则(空,utf8mb4_bin,utf8mb4_general_ci),一般情况下只需要关注字符集,但是特殊情况需要加排序规则

        如果字符集为utf8mb4,那么客户端连接需要使用set names utf8mb4;

    2 字符集的优先级为 列级别->表级别->库级别->全局变量级别

    升级表字符集

    语法: ALTER TABLE T2 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci 更改表以及字段的字符集

    批量修改语法: SELECT CONCAT( 'ALTER TABLE ', TABLE_NAME, ' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;' ) FROM information_schema.`TABLES` WHERE TABLE_SCHEMA = 'testdb';

    注意点:

    1. 修改表的字符集是属于copy操作,会阻塞业务,采用pt-osc工具进行修改

    2. 原表修改字符集后只能对原表修改后新插入的记录影响,采用pt-osc工具进行修改会避免这个问题,因为属于建立新表插入数据

    3. 由utf8->utf8mb4的话可能导致索引长度超过767,全局变量检查 innodb_large_prefix=on  innodb_file_format= BARRACUDA  同时开启生效


    相关文章

      网友评论

        本文标题:MySQL系列~字符集详解

        本文链接:https://www.haomeiwen.com/subject/kqdgwdtx.html