简介:
这边只是简单的介绍一下常见的几种存储引擎, 以及他们的特点
Mysql数据库区别于其他数据库的最重要的一个特点就是其插件式的表存储引擎.mysql插件式的存储引擎提供了一系列标准的管理和服务支持, 这些标准与存储引擎本身无关, 而存储引擎是底层物理结构的实现.
需要注意的是存储引擎是基于表的,而不是数据库.
innodb存储引擎
innodb存储引擎支持事务, 其设计目标主要面向在线事务处理(OLTP), 特点是行锁设计,支持外键, 默认读取操作不会产生锁.
innodb通过使用多版本并发控制(MVCC)来获得高并发性,并且实现了sql的4种隔离级别. 默认是REPEATALBE级别, 同时使用next-key locking 的策略来避免幻读 (phantom)现象产生. Innodb 还提供了插入缓冲, 二次写, 自适应hash索引, 预读等功能.
对于表中数据的存储,Innodb 采用了聚集(clustered)的方式, 所以每张表的存储都是按照主键的顺序存放, 如果没有显的定义主键, innodb会为每一行生成一个6个字节的rowID 作为主键
MyISAM存储引擎
它不支持事务, 表锁设计, 支持全文索引.
NDB存储引擎
NDB存储引擎是一个集群存储引擎, 特点是数据全部全部放内存中
Memory存储引擎
也是放在内存中