MySQL 数据库引擎与编码

举报
福州司马懿 发表于 2021/11/19 00:26:47 2021/11/19
【摘要】 简介 在建表语句中,我们可以指定数据表的引擎和字符集,例如 CREATE TABLE tableMsg ( id int(10) NOT NULL, message varchar(255) DE...

简介

在建表语句中,我们可以指定数据表的引擎和字符集,例如

CREATE TABLE tableMsg (
	id int(10) NOT NULL,
	message varchar(255) DEFAULT NULL COMMENT '信息',
	PRIMARY KEY(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

引擎

MySQL5.5开始,Innodb已经成为MySQL的默认引擎,之前是MyISAM

区别:

  1. MyISAM是非事务安全的,而InnoDB是事务安全的
  2. MyISAM锁的粒度是表级的,而InnoDB支持行级锁
  3. MyISAM支持全文类型索引,而InnoDB不支持全文索引
  4. MyISAM相对简单,效率上要优于InnoDB,小型应用可以考虑使用MyISAM
  5. MyISAM表保存成文件形式,跨平台使用更加方便

使用场景:

  1. 涉及的数据多、查询多,用MyISAM,如文章表
  2. 涉及的业务逻辑多,增删改查多,就用Innodb,如订单表

编码

Mysql5.5之后增加了utf8mb4编码,mb4就是most bytes 4的意思,是专门用来兼容四字节的unicode的。

由于utf8的最大字符长度是3字节变长的,因此最大能编码的Unicode字符是0xffff,也就是Unicode中的基本多文种平面(BMP)。也就是说,任何不在基本多文本平面的Unicode字符,譬如 Emoji 表情(一种常见于Android和ios手机的特殊Unicode编码)和很多不常用的汉字等,都无法使用 Mysql 的 utf8 字符集来存储。

utf8mb4是utf8的超集,除了将编码改为utf8mb4外,不需要做其他任何转换。当然,大部分情况下,为节省空间,用utf8就够了。

文章来源: blog.csdn.net,作者:福州-司马懿,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/chy555chy/article/details/111908668

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。