数据库系列课程(16)-MyISAM和InnoDB的区别

简介: 数据库系列课程(16)-MyISAM和InnoDB的区别
InnoDB MyISAM
⽀持事务处理 不⽀持事务,回滚将造成不完全回滚,不具有原⼦性
⽀持外键 不⽀持外键
⽀持⾏锁 ⽀持全⽂搜索
不⽀持FULLTEXT类型的索引(在Mysql5.6已引⼊)
不保存表的具体⾏数,扫描表来计算有多少⾏ 保存表的具体⾏数,不带where时,直接返回保存的⾏数
对于AUTO_INCREMENT类型的字段,必须包含只有该字段的索引
DELETE 表时,是⼀⾏⼀⾏的删除 DELETE 表时,先drop表,然后重建表
InnoDB 把数据和索引存放在表空间⾥⾯ MyISAM 表被存放在三个⽂件 。frm ⽂件存放表格定义。 数据⽂件是MYD (MYData) 。 索引⽂件是MYI(MYIndex)引伸 。
跨平台可直接拷⻉使⽤ 跨平台很难直接拷⻉
表格很难被压缩 表格可以被压缩
AUTO_INCREMENT类型字段可以和其他字段⼀起建⽴联合索引

如何选择:

  • 因为MyISAM相对简单所以在效率上要优于InnoDB,如果系统读多,写少,对原⼦性要求低,那么MyISAM最好的选择,且MyISAM恢复速度快,可直接⽤备份覆盖恢复。
  • 如果系统读少,写多的时候,尤其是并发写⼊⾼的时候,InnoDB就是⾸选了。

两种类型都有⾃⼰优缺点,选择那个完全要看⾃⼰的实际情况。

目录
相关文章
|
19小时前
|
存储 关系型数据库 MySQL
索引大战:探秘InnoDB数据库中B树和Hash索引的优劣
索引大战:探秘InnoDB数据库中B树和Hash索引的优劣
19 0
|
19小时前
|
存储 安全 关系型数据库
|
19小时前
|
存储 缓存 关系型数据库
MySQL - 存储引擎MyISAM和Innodb
MySQL - 存储引擎MyISAM和Innodb
|
19小时前
|
存储 关系型数据库 MySQL
MySQL引擎对决:深入解析MyISAM和InnoDB的区别
MySQL引擎对决:深入解析MyISAM和InnoDB的区别
37 0
|
19小时前
|
存储 SQL 关系型数据库
mysql中MyISAM和InnoDB的区别是什么
mysql中MyISAM和InnoDB的区别是什么
16 0
|
19小时前
|
存储 SQL 关系型数据库
MySQL 5.7和 MySQL8.0 InnoDB auto_increment 初始化的区别
在MySQL 5.7及之前,自动递增计数器只存于内存,重启后需通过查询确定初始值。从MySQL 8.0开始,计数器变化时写入重做日志,检查点时保存至数据字典,确保重启后能基于持久化的最大值初始化,避免查询,增强连续性和一致性。[[MySQL参考手册, 3099页]](https://dev.mysql.com/doc/refman/8.0/en/innodb-auto-increment-handling.html)
|
19小时前
|
存储 关系型数据库 MySQL
MySQL存储引擎 InnoDB、MyISAM、Memory存储引擎的特点与区别
MySQL存储引擎 InnoDB、MyISAM、Memory存储引擎的特点与区别
59 0
|
19小时前
|
关系型数据库 MySQL 数据库
docker MySQL删除数据库时的错误(errno: 39)
docker MySQL删除数据库时的错误(errno: 39)
16 0
|
19小时前
|
关系型数据库 MySQL 数据库
mysql 设置环境变量与未设置环境变量连接数据库的区别
设置与未设置MySQL环境变量在连接数据库时主要区别在于命令输入方式和系统便捷性。设置环境变量后,可直接使用`mysql -u 用户名 -p`命令连接,而无需指定完整路径,提升便利性和灵活性。未设置时,需输入完整路径如`C:\Program Files\MySQL\...`,操作繁琐且易错。为提高效率和减少错误,推荐安装后设置环境变量。[查看视频讲解](https://www.bilibili.com/video/BV1vH4y137HC/)。
22 3
mysql 设置环境变量与未设置环境变量连接数据库的区别
|
19小时前
|
关系型数据库 MySQL 数据库连接
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
18 0