MySQl 学习笔记 010(MyISAM和InnoDB的区别)
内容来自B站【狂神说Java】MySQL最新教程通俗易懂
一、上集补充
- 查看创建数据库的语句
SHOW CREATE DATABASE `school`; - 查看创建表的语句
SHOW CREATE TABLE `student`; - 查看表的结构
DESC `student`;
二、数据表的类型(引擎)
| 维度 | MyISAM | InnoDB |
|---|---|---|
| 事务支持 | 不支持 | 支持 |
| 数据行锁定 | 不支持 | 支持 |
| 外键 | 不支持 | 支持 |
| 全文索引 | 支持 | 不支持 |
| 表空间的大小 | 较小 | 较大,约为前者的两倍 |
常规操作:
- MyISAM:节约空间,速度较快
- InnoDB:安全性高,支持事务的处理,多表多用户操作
在物理空间存放的位置
所有的数据库文件都存放在data的目录下,一个文件夹就对应一个数据库,本质还是文件的存储。
MySQl引擎在物理文件上的区别:
- InnoDB 在数据库表中只有一个 *.frm 文件,以及上级目录下的 ibdata1 文件
- MyISAM 对应的文件
- *.frm 表结构的定义文件
- *.MYD 数据文件(data)
- *.MYI 索引文件(index)
三、数据库表的字符集
charset=utf8
- 不设置的话,会是mysql默认的字符集编码Latin1(不支持中文)
- 可以在my.ini中配置的编码
character-set-server=utf8
浙公网安备 33010602011771号