当前位置: 首页 > news >正文

Mysql表字符集更换

Mysql表字符集更换

字符集

1.系统默认设置字符集为 utf8mb4,校验规则为 utf8mb4_bin,但可根据应用需要在申请时选
择其他字符集。
2.绝大多数数据库产品 UTF8 字符集存储汉字占用 3 个字节(部分特殊汉字占用 4 个字节),存
储英文字符占用 1 个字节。而 MYSQL 默认按字符方式存储数据,对于汉字,例如 varchar(10)
可以存 10 个汉字。
在从其它数据库产品迁移到 MYSQL 数据库(UTF8 字符集)的情况下,无需担心字符集转
换问题。因为 utf8mb4 完全兼容 utf8,且支持 emoji 表情及更多的字符,唯一不足的是,
utf8mb4 会占用更多的空间,一个字符最多占用 4 个字节(部分特殊汉字,emoji 表情),存储
普通汉字和存储英文字符占用的字节和 UTF8 一样。

校验规则

字符集校验规则校验规则说明
utf8mb4utf8mb4_bin将字符串每个字符用二进制数据编译存储,区分大小写,而且可以存二进制的内容
utf8mb4utf8mb4_general_ ci不区分大小写。没有实现 Unicode 校验规则,在遇到某些特殊语言或者字符集,排序结果可能不一致,但是,在绝大多数情况下,这些特殊字符的顺序并不需要那么精确。
utf8mb4utf8mb4_general_ cs区分大小写
utf8mb4utf8mb4_unicode_ ci是基于标准的 Unicode 来排序和比较,能够在各种语言之间精确排序,Unicode 校验规则为了能够处理特殊字符的情况,实现了略微复杂的排序算法,仅部分支持 Unicode 校对规则算法,一些字符还是不能支持。

字符集级别

mysql数据库包含四种级别的字符集,分别是库实例,数据库、表、表字段,执行的优先级是从低到高,意思就是实例优先级低于数据库,数据库低于表,表低于表字段

查看方式

实例:show variables like ‘%char%’
数据库:show create database groupdb
表:show create table groupdb.gp_contact
表字段:show full columns from groupdb.gp_contact

小数据量表更换字符集

alter table `table_name` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

注意:命令只会对后续插入的数据生效。这意味着在执行此命令之前插入的所有数据都将保持原字符集,而新插入的数据将使用utf8mb4字符集。

大数据量表更换字符集

-- 建表
CREATE TABLE `table_name_20230605` (`id` CHAR(32)  NOT NULL,`name` CHAR(32)  NOT NULL,PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci-- 替换
RENAME TABLE table_name to table_name_backup_20230605, table_name_20230605 to table_name;-- 插入热点数据
INSERT INTO table_name (SELECT * FROM table_name_backup_20230605 WHERE createtime >= '2023-06-05 19:30:00');

相关文章:

  • unity学习(32)——跳转到角色选择界面(父子类问题)
  • Pytorch 复习总结 3
  • Sora:开启视频内容创作新纪元的AI革命
  • 喝点小酒-胡诌“编程语言学习”
  • 算法:有效的括号
  • 压缩感知(Compressed Sensing)的MATLAB仿真实现
  • 即时通讯技术文集(第33期):IM开发综合技术合集(Part6) [共12篇]
  • Opencv3.2 ubuntu20.04安装过程
  • 新媒体运营-职业属性篇
  • node 环境问题
  • jmeter 命令行启动 动态参数化
  • 图数据库 之 Neo4j - 应用场景1 - 欺诈检测(6)
  • C# 类型的默认值(C# 参考)
  • 蓝桥杯:真题讲解1(C++版)附带解析
  • Sora横空出世!AI将如何撬动未来?
  • Angular2开发踩坑系列-生产环境编译
  • angular组件开发
  • Apache的基本使用
  • Iterator 和 for...of 循环
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • text-decoration与color属性
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • web标准化(下)
  • 对象管理器(defineProperty)学习笔记
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​Java并发新构件之Exchanger
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • # 计算机视觉入门
  • (1)(1.13) SiK无线电高级配置(五)
  • (11)MSP430F5529 定时器B
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (搬运以学习)flask 上下文的实现
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (原)本想说脏话,奈何已放下
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (转)视频码率,帧率和分辨率的联系与区别
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .Net MVC + EF搭建学生管理系统
  • .Net程序帮助文档制作
  • .net访问oracle数据库性能问题
  • .net流程开发平台的一些难点(1)
  • .net通用权限框架B/S (三)--MODEL层(2)
  • /bin/bash^M: bad interpreter: No such file or directory
  • @media screen 针对不同移动设备
  • @property python知乎_Python3基础之:property
  • [ Linux ] git工具的基本使用(仓库的构建,提交)
  • [] 与 [[]], -gt 与 > 的比较