MySQL存储引擎与体系结构
1.数据库与数据库实例
数据库为文件的集合,数据库实例是数据库与用户之间的程序,用来操作数据库。
2.MySQL由以下几部分组成
连接池组件、管理服务和工具组件、SQL接口组件、查询分析器组件、优化器组件、缓冲(cache)组件、插件式存储引擎、物理文件。
存储引擎是基于表的,不是基于数据库。
插件式存储引擎是MySQL独有的。
数据库与文件系统的区别就是支持事务。
3.MySQL存储引擎
优点:每一个存储引擎都有各自的特点,能够根据具体的应用选择使用
InnoDB支持事务,其设计目标主要面向在线事务处理(OLTP),其特点是支持行锁设计、外键并支持读写不产生锁,实现了SQL标准的4种隔离级别,默认REPEATABLE级别,使用next-key locking的策略来避免幻读现象的产生。采用聚集的方式存储数据,每张表都是按主键的顺序进行存放。
MyISAM不支持事务、表锁设计、支持全文索引,主要面向在线事务处理(OLTP)。不支持事务的原因是,并不是所有的应用都需要事务。其的特点是它的缓冲池只缓存索引文件,不缓冲数据文件。缺点是由于是表锁,可能长期处在锁的状态,是以前版本的默认。