《MySql技术内幕 InnoDb存储引擎》学习笔记【三 存储引擎】

版权声明:本文为博主原创,转载请注明出处! https://blog.csdn.net/greedystar/article/details/87864818

目录

三 存储引擎

(一)InnoDB

(二)MyISAM存储引擎

(三)NDB存储引擎

(四)Memory存储引擎

(五)Archive存储引擎

(六)Federated存储引擎

(七)Maria存储引擎


三 存储引擎

(一)InnoDB

InnoDB存储引擎支持事务、行锁、外键、非锁定读、从MySql5.5.8版本开始,InnoDb是默认的存储引擎。

InnoDB通过使用多版本并发控制(MVCC)来获得高并发性,并实现了SQL标准的4种隔离级别,默认为REPEATABLE级别,还使用一种next-key locking的策略来避免幻读,除此之外,还提供了插入缓冲(insert buffer)、二次写(double write)、自适应哈希索引(adaptive hash index)、预读(read ahead)等高性能和高可用的功能。

InnoDb采用聚集方式存放表中的数据,每张表的存储都是按主键的顺序存放的,如果没有显式指定主键,则InnoDB存储引擎会为每一行记录自动生成一个6字节的ROWID作为主键。

(二)MyISAM存储引擎

MyISAM存储引擎不支持事务、表锁设计,支持全文索引,在MySql5.5.8版本之前MyISAM存储引擎是默认的存储引擎。由于MyISAM存储引擎不支持事务,因此主要用于数据仓库这种不具有业务逻辑的应用。

MyISAM存储引擎只缓存索引文件,不缓存数据文件。数据文件可以使用myisampack工具(哈夫曼编码静态压缩算法)进一步压缩。

(三)NDB存储引擎

NDB是一个集群存储引擎,其将全部数据存储于内存中(从MySql5.1开始,可以将非索引数据放在磁盘上),因此主键查找速度极快,并且可以通过添加NDB数据存储节点线性提高数据库性能。

(四)Memory存储引擎

Memory将表中的数据存放在内存中,适合用于存储临时数据的临时表,Memory存储引擎使用Hash索引,而不是B+树索引。

Memory存储引擎速度快,但只支持表锁,并发差,不支持TEXT和BLOB类型。

(五)Archive存储引擎

Archive存储引擎只支持INSERT和SELECT操作,从MySql5.1开始支持索引,不支持事务,使用zlib算法对数据行进行压缩后存放,压缩比可达到1:10,主要用于高速插入和压缩功能,适合存储日志数据。

(六)Federated存储引擎

Federated存储引擎不存放数据,仅指向一台远程MySql数据库服务器上的表,不自持异构数据库表。

(七)Maria存储引擎

Maria存储引擎是对MyISAM的改进,添加了数据和索引文件的缓存、行锁设计、MVCC功能,支持事务,以及更好得到BLOB字段的处理性能。

特此声明:本系列博客为均为《MySql技术内幕 InnoDb存储引擎》读书笔记,存在错误还请指正

参考资料

《MySql技术内幕 InnoDb存储引擎》

猜你喜欢

转载自blog.csdn.net/greedystar/article/details/87864818
今日推荐