在数据库中,我们一般常用的存储引擎有innodb和myisam。
区别:
1.InnoDB具有事务,支持4个事务隔离级别,回滚,崩溃修复能力和多版本并发的事务安全,包括ACID(原子性、一致性、持久性、隔离性)。如果应用中需要执行大量的INSERT或UPDATE操作,则应该使用InnoDB,这样可以提高多用户并发操作的性能。
MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。如果应用中需要执行大量的SELECT查询,那么MyISAM是更好的选择
隔离级别:
(1)读未提交(read uncommitted):可以读取其他 session 未提交的脏数据。
(2)读已提交(read committed):允许不可重复读取,但不允许脏读取。提交后,其他会话可以看到提交的数据。
(3)可重复读(repeatable read):禁止不可重复读取和脏读取、以及幻读(innodb 独有)。
(4)串行(serializable):事务只能一个接着一个地执行,但不能并发执行。事务隔离级别最高
不同的隔离级别有不同的现象,并有不同的锁定/并发机制,隔离级别越高,数据库的并发性就越差
2.InnoDB支持外键,而MyISAM不支持。
3.Innodb不支持全文索引,而MyISAM支持全文索引,查询效率上MyISAM要高;
4.innodb更加适合写入操作,myisam更加适合读取操作
如何选择
. MySQL5.5版本开始Innodb已经成为Mysql的默认引擎(之前是MyISAM),说明其优势是有目共睹的,如果你不知道用什么,那就用InnoDB,至少不会差。