mysql面试--引擎MyISAM与InnoDB的区别
2017-08-26 18:42
260 查看
在MySQL数据库中,常用的引擎主要就是2个:Innodb和MyIASM,两者的区别如下:
1.存储结构
Innodb:设计的目标就是处理大数据容量的数据库系统,所有的表都保存在同一个数据文件中,InnoDB表的大小只受限于操作系统文件的大小,一般为2GB。
MyISAM:每个MyISAM在磁盘上存储成三个文件。第一个 文件的名字以表的名字开始,扩展名指出文件类型, .frm文件存储表定义。数据文件的扩
展名为.MYD (MYData)。
索引文件的扩 展名是.MYI (MYIndex)。
2.存储空间:
MyISAM:可被压缩,存储空间较小。
InnoDB:需要更多的内存和存储,它会在主内存中建立其专用的缓冲池用于高速缓冲数据和索引。
3.事务支持:
MyISAM:强调的是性能,每次查询具有原子性,其执行数度比InnoDB类型更快,但是不提供事务支持。
InnoDB:提供事务支持事务,外部键等高级数据库功能。 具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACIDcompliant))型表。
4.表锁差异:
MyISAM:只支持表级锁,用户在操作myisam表时,select,update,delete,insert语句都会给表自动加锁,如果加锁以后的表满足insert并发的情况下,可以在表的尾 部插入新的数据。
InnoDB:支持事务和行级锁,是innodb的最大特色。行锁大幅度提高了多用户并发操作的新能。但是InnoDB的行锁,只是在WHERE的主键是有效的,非主键的WHERE都 会锁全表的。
5.外键:
MyISAM:不支持
InnoDB:支持
6. 索引:
MyIASM支持全文类型索引,而InnoDB不支持全文索引
7.清空表:
清空整个表时,InnoDB是一行一行的删除,效率非常慢。MyISAM则会重建表
补充2点:
c.大容量的数据集时趋向于选择Innodb。因为它支持事务处理和故障的恢复。Innodb可以利用数据日志来进行数据的恢复。主键的查询在Innodb也是比较快的。
d.大批量的插入语句时(这里是INSERT语句)在MyIASM引擎中执行的比较的快,但是UPDATE语句在Innodb下执行的会比较的快,尤其是在并发量大的时候。
1.存储结构
Innodb:设计的目标就是处理大数据容量的数据库系统,所有的表都保存在同一个数据文件中,InnoDB表的大小只受限于操作系统文件的大小,一般为2GB。
MyISAM:每个MyISAM在磁盘上存储成三个文件。第一个 文件的名字以表的名字开始,扩展名指出文件类型, .frm文件存储表定义。数据文件的扩
展名为.MYD (MYData)。
索引文件的扩 展名是.MYI (MYIndex)。
2.存储空间:
MyISAM:可被压缩,存储空间较小。
InnoDB:需要更多的内存和存储,它会在主内存中建立其专用的缓冲池用于高速缓冲数据和索引。
3.事务支持:
MyISAM:强调的是性能,每次查询具有原子性,其执行数度比InnoDB类型更快,但是不提供事务支持。
InnoDB:提供事务支持事务,外部键等高级数据库功能。 具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACIDcompliant))型表。
4.表锁差异:
MyISAM:只支持表级锁,用户在操作myisam表时,select,update,delete,insert语句都会给表自动加锁,如果加锁以后的表满足insert并发的情况下,可以在表的尾 部插入新的数据。
InnoDB:支持事务和行级锁,是innodb的最大特色。行锁大幅度提高了多用户并发操作的新能。但是InnoDB的行锁,只是在WHERE的主键是有效的,非主键的WHERE都 会锁全表的。
5.外键:
MyISAM:不支持
InnoDB:支持
6. 索引:
MyIASM支持全文类型索引,而InnoDB不支持全文索引
7.清空表:
清空整个表时,InnoDB是一行一行的删除,效率非常慢。MyISAM则会重建表
补充2点:
c.大容量的数据集时趋向于选择Innodb。因为它支持事务处理和故障的恢复。Innodb可以利用数据日志来进行数据的恢复。主键的查询在Innodb也是比较快的。
d.大批量的插入语句时(这里是INSERT语句)在MyIASM引擎中执行的比较的快,但是UPDATE语句在Innodb下执行的会比较的快,尤其是在并发量大的时候。
相关文章推荐
- 面试宝典系列-mysql引擎Innodb和MyISAM的区别
- MyISAM与Innodb引擎的特点和区别 (MySQL面试)
- Mysql存储引擎中InnoDB与Myisam的区别
- mysql存储引擎InnoDB和MyISAM的区别
- Mysql innodb引擎和myisam引擎使用索引区别
- MySQL各存储引擎(INNODB,MyISAM等)的区别及其启动方法
- MySQL存储引擎--MyISAM与InnoDB区别
- mysql存储引擎:InnoDB和MyISAM的区别与优劣
- Mysql引擎 Innodb和MyISAM的区别
- MYSQL存储引擎InnoDB和myisam区别
- MySQL存储引擎——MyISAM与InnoDB区别
- Mysql 存储引擎中InnoDB与Myisam的主要区别
- mysql存储引擎的种类与区别(innodb与myisam)
- Mysql 存储引擎中InnoDB与Myisam的主要区别
- mysql数据据存储引擎InnoDB和MyISAM的优势及区别
- MySQL存储引擎中MyISAM和InnoDB区别详解
- MySQL存储引擎中的MyISAM和InnoDB区别详解
- MySQL存储引擎MyISAM与InnoDB区别总结整理
- MySQL存储引擎中的MyISAM和InnoDB区别详解
- Mysql引擎 Innodb和MyISAM的区别