Blog

Blog

PHODAL

MySQL utf8mb4 MySQL笔记

在上一篇Django Sqlite3 MySQL迁移遇到了诸多问题,现在说说一些数据库的操作。。

MySQL utf8mb4

这里就无耻地引用官方文档的翻译The utf8mb4 Character Set (4-Byte UTF-8 Unicode Encoding)

utf8mb4字符集使用最多每个字符的四个字节支持补充字符:

对于一个BMP字符,UTF8和utf8mb4具有相​​同的存储特性:同样的代码值,相同的编码,相同的长度。

对于一个补充性质,UTF8不能存储字符可言,而utf8mb4需要四个字节来存储它。由于UTF8不能存储字符可言,你不必在UTF8列的任何增补字符,你不必担心转换的字符或丢失数据当从旧版本的MySQL升级UTF8数据。

utf8mb4是utf8的一个超集,因此对于操作:如下面的级联,结果utf8mb4有字符集和utf8mb4_col的整理:

  SELECT CONCAT(utf8_col,utf8mb4_col);

同样,在WHERE子句中下面的对比根据utf8mb_col功能性整理的工作原理:

 SELECT * FROM utf8_tbl,utf8mb4_tbl  WHERE utf8_tbl.utf8_col = utf8mb4_tbl.utf8mb4_col;

提示:为了节省空间使用UTF-8,使用VARCHAR而不是CHAR。否则,MySQL必须保留三个(或四个)个字节为每个字符的CHAR字符集中utf8的(或utf8mb4)列,因为这是可能的最大长度。例如,MySQL必须预留40个字节为一个CHAR(10)字符集utf8mb4列。

MySQL utf8mb4 创建

  CREATE DATABASE phodal CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

MySQL sql文件导出

  mysqldump -uroot phodal >phodal.sql

MySQL sql文件导入

  mysql -uroot phodal < phodal.sql

关于我

Github: @phodal     微博:@phodal     知乎:@phodal    

微信公众号(Phodal)

围观我的Github Idea墙, 也许,你会遇到心仪的项目

QQ技术交流群: 321689806
comment

Feeds

RSS / Atom

最近文章

关于作者

Phodal Huang

Engineer, Consultant, Writer, Designer

ThoughtWorks 技术专家

工程师 / 咨询师 / 作家 / 设计学徒

开源深度爱好者

出版有《前端架构:从入门到微前端》、《自己动手设计物联网》、《全栈应用开发:精益实践》

联系我: h@phodal.com

微信公众号: 最新技术分享

标签