InnoDB和MyISAM的区别
InnoDB和MyISAM的区别
几个常用的命令
--查看创建数据库的语句
SHOW CREATE DATABASE school;
-- 查询出的结果 CREATE DATABASE `school` /*!40100 DEFAULT CHARACTER SET utf8 */
--查看创建表的语句
SHOW CREATE TABLE `teacher`;
/*
CREATE TABLE `teacher` (
`id` int(4) NOT NULL COMMENT '老师工号',
`name` varchar(30) DEFAULT '匿名' COMMENT '姓名',
`age` int(3) DEFAULT '0' COMMENT '年龄',
`sex` varchar(2) NOT NULL DEFAULT '女' COMMENT '年龄',
`birthday` datetime DEFAULT NULL COMMENT '出生日期',
`adress` varchar(50) DEFAULT NULL COMMENT '家庭住址',
`email` varchar(2) DEFAULT NULL COMMENT '电子邮箱',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
*/
--查看表结构
DESC `teacher`;
InnoDB vs. MyISAM
数据库引擎
InnoDB 默认使用~
MyISAM 早些年使用的
MyISAM | InnoDB | |
---|---|---|
事务支持 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间的大小 | 较小 | 是MYISAM表空间的两倍 |
常规使用操作
- MYISAM 节约空间,速度较快
- INNODB 安全性高,事务的处理,多表多用户操作
在物理空间存在的位置
所有的数据库文件都存在data目录下
本质上还是文件的存储
MySQL引擎在物理文件上的区别
- innoDB在数据库表中只有一个*.frm文件,以及上级目录下的ibdata1文件
- MyISAM对应的文件
- *.frm 表结构的定义文件
- *.MYD 数据文件(data) MY表示MyISAM
- *.MYI 索引文件(index)
设置数据库表的字符集编码
CHARSET=utf8
建议在建表的时候都加上