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

建议在建表的时候都加上

posted @ 2021-12-29 17:08  Oh,mydream!  阅读(80)  评论(0编辑  收藏  举报