mysql之存储引擎
存储引擎又称表类型,是指mysql为各种场景运用不同的技术设置的功能各异的表存储方式。
常见的有:MYISAM,InnoDB,BDB,Memery,Merge,Archive,Federated,Cluster/NDB,CSV,BlackHole。
场景简介:
MYISAM:拥有较高的插入和查询速度,但不支持事务,
InnoDB:mysql5.5+的默认数据库,事务型数据库的首选引擎,支持ACID(原子性,一致性,独立性,持久性)事务,支持行级锁定
BDB:事务型数据库,支持commit和rollback等其他事务特性
Memery:所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的存储空间。并且其内容会在mysql重启时丢失。
Merge:将一定数量的MYISAM联合成一个整体,在超大规模数据存储时很有用
Archive:非常适合存储大量的独立的作为历史记录的数据,因为他们不经常被读取。Archive拥有高校的插入速度,但其对查询的支持较差。
Federated:将不同的mysql服务器联合起来,逻辑上组成一个完整的数据库,非常适合分布式应用。
Cluster/NDB:高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用。
CSV:逻辑上由,分割数据的存储引擎。他会在数据库子目录里为每个数据库创建一个.csv文件。这是一种普通文本文件,每个数据行占用一个文本行,不支持索引。
BlackHole:黑洞引擎,写入的任何数据都会消失,一般用于记录binlog(二进制日志)做复制的中继。