MySQL 的相关介绍 :

在介绍MySQL之前先弄清楚两个概念:

数据库:与DB相关的物理操作系统文件和其他形式文件的集合 

实例:包括与MySQL相关的后台线程和共享内存区 

在一般情况下一个实例仅仅对应于一个数据库的,像类似于高可用性集群的那种架构

就是一个数据库对应于多个实例

MySQL 的体系结构:

连接池组件

管理服务和工具组件

sql接口组件

查询分析组件

优化器组件

缓冲组件

插件式存储引擎

物理文件

下图很好的表现了这种体系结构:

常用的MySQL存储引擎

MYISAM特点:不支持事务,表锁设计,支持全文索引,没有自己独立的数据缓冲池,只缓冲索引,数据依靠

操作系统缓存,主要应用与Olap系统中。

innodb:支持行所,支持外键,支持非锁定读(通过数据库快照实现),此外还支持插入缓冲,二次写,自适应哈西索引,

预读等高性能和高可用的功能

其他MySQL 存储引擎:

Memory存储引擎:速度比较快,但数据容易丢失

Archive存储引擎:只支持select和insert 操作。设计目的主要是提供高速的插入和压缩功能

Federated存储引擎:不存储实际的数据,指向远程mysql服务器上的表(暂时只支持MySQL),可以理解为远程MySQL

服务器上的表的映射,有点类似于SQLServer的链接服务器。

Maria存储引擎:支持缓存数据和索引文件,支持行锁提供MVCC功能,支持事务和非事务安全的选项,以及更好的Blob字符的处理性能。