首页 > 数据库 >MySQL8.0中utf8mb4的强大:释放多语言数据的全部潜能

MySQL8.0中utf8mb4的强大:释放多语言数据的全部潜能

时间:2023-07-15 14:23:47浏览次数:32  
标签:abce name utf8mb4 utf8 潜能 MySQL8.0 com example

 

在现代网络应用中,支持多种语言和字符集变得越来越重要。随着全球化的兴起,存储和处理多语言数据的需求已变得至关重要。MySQL作为最流行的关系数据库管理系统之一,它意识到了这一需求,并在其8.0版本中引入了utf8mb4,从而改变了游戏规则。在本文中,我们将通过实际示例探讨utf8mb4及其在MySQL 8.0中的优势。

理解utf8mb4
在深入了解utf8mb4的优势之前,让我们先弄清楚utf8mb4代表什么。在MySQL中,"utf8"指的是支持Unicode字符集的字符编码,每个字符最多使用三个字节。另一方面,utf8mb4是utf8的一个修改版本,它支持完整的Unicode字符集,包括表情符号和其他补充字符,每个字符最多使用4个字节。

MySQL中最初的utf8实现只支持基本多语言(Basic Multilingual Plane, BMP)的字符,这大约占所有Unicode字符的90%。utf8mb4支持整个Unicode字符集,包括表情符号和其他补充字符。它通过每个字符最多使用四个字节而不是utf8使用的三个字节来实现这一点。

下面的表格显示了utf8和utf8mb4之间的区别:

历史上,MySQL使用字符集utf8作为utf8mb3的别名。然而,从MySQL 8.0.28开始,utf8mb3仅在SHOW语句的输出和Information Schema表中引用该字符集时使用。将来,utf8有望成为对utf8mb4的引用。为避免任何歧义,建议在引用该字符集时明确指定utf8mb4。

可以知道,utf8、utf8mb3和utf8mb4之间的主要区别在于每个字符的最大字节数。utf8和utf8mb3只能存储基本多语言(BMP)中的字符,而utf8mb4还可以存储Supplementary Plane中的字符。这意味着utf8mb4可以支持更多字符,包括表情符号、数学符号和其他特殊字符。

utf8是MySQL 5.7及更早版本的默认字符集,而utf8mb3是MySQL 8.0的默认字符集。但是,在MySQL 8.0.28及更高版本中,utf8mb4是默认字符集。

最后,utf8和utf8mb3在MySQL 8.0中被弃用。这意味着它们最终将从MySQL中移除,因此建议使用utf8mb4代替。

因此,如果需要存储所有Unicode字符,包括表情符号和其他补充字符,那么应该使用utf8mb4。但是,如果只需要存储BMP中的字符,那么utf8可能就足够了。

下面是使用MySQL表和查询比较utf8和utf8mb4的示例:

MySQL 5.7

mysql> select version();
+------------+
| version()  |
+------------+
| 5.7.23-log |
+------------+

CREATE TABLE abce (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(255) CHARACTER SET utf8,
  email VARCHAR(255) CHARACTER SET utf8
);
mysql> show create table abce\G
*************************** 1. row ***************************
       Table: abce
Create Table: CREATE TABLE `abce` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
  `email` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
1 row in set (0.00 sec)

mysql> 

插入三行记录,包含emoji:

mysql> INSERT INTO abce (name, email) VALUES
    -> ('Arun Jith', '[email protected]'),
    -> ('Jane Doe', '[email protected]'),
    -> ('

标签:abce,name,utf8mb4,utf8,潜能,MySQL8.0,com,example
From: https://www.cnblogs.com/abclife/p/17556063.html

相关文章

  • java 判断字符串内容是utf-8还是utf8mb4
    判断字符串内容是UTF-8还是UTF8MB4的方法概述在Java中,判断字符串内容是UTF-8还是UTF8MB4可以通过检查字符编码范围来实现。UTF-8使用1到4个字节表示一个字符,而UTF8MB4使用1到4个字节表示一个字符。下面将介绍整个流程和每一步需要做的事情。流程步骤描述1.将字符串转......
  • Mysql8.0多源复制和复制过滤
    一、Mysql多源复制1、Mysql多源复制的作用和特点  1)Mysql多源复制作用  选择一台从Mysql从多个主节点将数据复制到本地汇总备份 2)特点  将多台主Mysql服务器数据汇总到一台从Mysql服务器 Mysql5.7以后新增加的功能 方便数据库数据集中化管理和集中化备份2、主Mysq......
  • mysql8.0多实例部署,同版本多实例和不同版本实例
    一、配置Mysql8.0同版本多实例1、解压移动安装位置2、创建Mysql管理组和用户3、创建多实例用户数据库存储目录修改目录所有者4、修改多实例Mysql主配置文件5、初始化多实例Mysql6、启动服务7、登录多实例Mysql二、配置Mysql不同版本多实例1、安装Mysql5.62、修改mysql5.6主配置文件......
  • MySQL8.0 密码管理与密码策略
    一、密码管理#新密码不能和前面三次的密码相同password_history=3;#新密码不能和前面九十天内使用的密码相同password_reuse_interval=90;#默认为off;为on时修改密码需要用户提供当前密码(开启后修改密码需要验证旧密码,root用户不需要)password_require_current......
  • Mysql8.0配置Mysql主从复制GTID复制和延迟从库应用
    一、Mysql主从复制1、Mysql主从复制的作用和原理  1)主从复制的作用  防止单节点数据库故障数据丢失 增强数据的安全性和可靠性 2)原理  主Mysql开启二进制日志 从数据库监听主Mysql二进制日志变化 从复制二进制日志到本地 读取复制的二进制日志执行二进制日......
  • Docker安装MySQL8.0
    安装拉取镜像默认拉取最新版本的镜像$dockerpullmysql如果要指定版本,使用下面的命令$dockerpullmysql:8.0.16创建数据目录和配置文件 在宿主机创建放置mysql的配置文件的目录和数据目录,并且进行授权$mkdir-p/usr/mysql/conf/usr/mysql/data$chmod-R755/usr/m......
  • centos8 安装mysql8.0.33
    一、在官网下载mysql源 [root@zabbix-server~]#wgethttps://dev.mysql.com/get/mysql80-community-release-el8-5.noarch.rpm  二、安装mysql[root@zabbix-server~]#yuminstall-ymysql80-community-release-el8-5.noarch.rpm[root@zabbix-server~]#yum-y......
  • mysql8.0创建新用户
     查看当前用户usemysql;selectcurrent_user();或者:selectUser,authentication_string,Hostfromuser;查看权限showgrantsfor'user'@'ip';或者showgrants;创建一个给新用户的数据库createdatabasetestDatabase;创建新用户同时配置给该用户testData......
  • MySQL8.0设置外网访问
    1.登进MySQL之后mysql-uroot-p***2,输入以下语句,进入mysql库:usemysql3,更新域属性,'%'表示允许外部访问:updateusersethost='%'whereuser='root';4,执行以上语句之后再执行:FLUSHPRIVILEGES;5,再执行授权语句:GRANTALLPRIVILEGESON*.*TO'root'@'%......
  • 解决MySQL8.0报错:Unknown system variable 'validate_password_policy'
    解决MySQL8.0报错:Unknownsystemvariable'validate_password_policy'解决MySQL8.0报错:Unknownsystemvariable'validate_password_policy'一、问题描述1.通过yum安装好mysql8.0,通过生成的临时密码登录后操作mysql时会报如下错误:mysql>showdatabases;ERROR1820......