MySQL——数据库引擎

296 阅读1分钟

MySQL引擎的话一般有两种:InnoDB 和 MyISAM,一个一个来介绍:

InnoDB

  • InnoDB是mysql默认的事务性存储引擎,一般情况下只有需要它不支持的特性时才会考虑别的引擎。
  • 实现了四个标准的事务隔离级别,默认级别为可重复读,在这个可重复读隔离级别下通过多版本并发控制(MVCC)+ (Next-Key Locking) 防止幻读。
  • 主索引为聚簇索引,在索引中直接保存了数据,从而避免了过多的磁盘I/O,因此查询性能有了较大的提升。
  • 内部做了很多优化,包括从磁盘读取数据时采用的可预测性读、能够加快读操作并且自动创建的自适应哈希索引、能够加速插入操作的插入缓冲区等。
  • 支持真正的在线热备份,一致性问题可以在不停止写入的情况下完成备份。

MyISAM

提供了大量的特性,包括压缩表、空间数据索引等。
不支持事务。
不支持行级锁,只能对整张表加锁,读取时要对所有读取到的表加锁,同时写入时需要对表加排它锁。读取数据时依旧可以插入数据,也叫并发插入。