数据表的类型
数据库引擎详解
一、常用数据库引擎
- InnoDB:MySQL 默认引擎
- MyISAM:早期使用,现在较少用
二、MyISAM 与 InnoDB 区别
| 对比项 | MyISAM | InnoDB |
|---|---|---|
| 事务支持 | 不支持 | 支持 |
| 数据行锁定 | 不支持 | 支持 |
| 外键约束 | 不支持 | 支持 |
| 全文索引 | 支持 | 不支持 |
| 表空间大小 | 较小 | 较大(约 2 倍) |
三、常规使用选择
- MyISAM
- 节约空间
- 速度快
- InnoDB
- 安全性高
- 支持事务处理
- 适合多表、多用户操作
四、物理存储位置
- 所有数据库文件都存放在 MySQL 的
data目录下 - 本质:文件形式存储
五、引擎在物理文件上的区别
InnoDB
.ibd:数据 + 索引(MySQL 8.0)- 公共文件:
ibdata1
老版本有
.frm(表结构),MySQL 8.0 已合并
MyISAM
.sdi:表结构文件(MySQL 8.0,替代.frm).MYD:数据文件.MYI:索引文件
六、建表示例(指定引擎)
CREATE TABLE IF NOT EXISTS `school`.`teacher` (
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '教师ID',
`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',
`sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别',
`birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
`address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',
`email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (`id`)
) ENGINE=MYISAM DEFAULT CHARSET=utf8;
七、设置表字符集编码
CHARSET=utf8
- 不设置:默认使用
latin1,不支持中文 - 配置文件设置(不推荐):
在my.ini中添加character-set-server=utf8

浙公网安备 33010602011771号