js css html

MySQL系列~字符集详解

2023-11-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  同时开启生效


上一篇下一篇

猜你喜欢

热点阅读