1:myisam不支持事务,innodb支持事务。
2:myisam支持表级锁,innodb支持行级锁。
3:myisam不支持mvcc,innodb支持mvcc。
4:myisam不支持索引。innodb支持索引。
5:myisam支持全文索引,innodb不支持全文索引。
innodb四大特性:插入缓存(insert buffer),二次写(double write),预读(read ahead),自适应哈希索引(ahi)
两者selectcount(*)哪一个更快:myisam更快,因为它内部维护了一个计数器,可以直接调取。
事务的四种隔离级别:读未提交(脏读),读已提交(不可重复读,对于更新数据),可重复读(幻读,对于新增和删除数据),串行。
事务的基本要素:原子性,一致性,隔离性,持久性
事务是如何通过日志来实现的:
通过redo和innodb的存储引擎的日志缓存,当事务开始的时候会记录该事务的lsn(log sequense number)号,当事务执行的时候会记录存储引擎的日志的日志缓存中写入事务日志,当提交事务的时候,必须将存储引擎的日志缓存写入磁盘中,通过它(innodb_flush_log_at_trx_commit)来控制。也就是写数据前,需要先写日志,这叫预写日志方式。