MySQL 数据库引擎与编码
【摘要】
简介
在建表语句中,我们可以指定数据表的引擎和字符集,例如
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
区别:
- MyISAM是非事务安全的,而InnoDB是事务安全的
- MyISAM锁的粒度是表级的,而InnoDB支持行级锁
- MyISAM支持全文类型索引,而InnoDB不支持全文索引
- MyISAM相对简单,效率上要优于InnoDB,小型应用可以考虑使用MyISAM
- MyISAM表保存成文件形式,跨平台使用更加方便
使用场景:
- 涉及的数据多、查询多,用MyISAM,如文章表
- 涉及的业务逻辑多,增删改查多,就用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)