MySQL 的相关介绍 :
在介绍MySQL之前先弄清楚两个概念:
数据库:与DB相关的物理操作系统文件和其他形式文件的集合
实例:包括与MySQL相关的后台线程和共享内存区
在一般情况下一个实例仅仅对应于一个数据库的,像类似于高可用性集群的那种架构
就是一个数据库对应于多个实例
MySQL 的体系结构:
连接池组件
管理服务和工具组件
sql接口组件
查询分析组件
优化器组件
缓冲组件
插件式存储引擎
物理文件
下图很好的表现了这种体系结构:
常用的MySQL存储引擎
MYISAM特点:不支持事务,表锁设计,支持全文索引,没有自己独立的数据缓冲池,只缓冲索引,数据依靠
操作系统缓存,主要应用与Olap系统中。
innodb:支持行所,支持外键,支持非锁定读(通过数据库快照实现),此外还支持插入缓冲,二次写,自适应哈西索引,
预读等高性能和高可用的功能
其他MySQL 存储引擎:
Memory存储引擎:速度比较快,但数据容易丢失
Archive存储引擎:只支持select和insert 操作。设计目的主要是提供高速的插入和压缩功能
Federated存储引擎:不存储实际的数据,指向远程mysql服务器上的表(暂时只支持MySQL),可以理解为远程MySQL
服务器上的表的映射,有点类似于SQLServer的链接服务器。
Maria存储引擎:支持缓存数据和索引文件,支持行锁提供MVCC功能,支持事务和非事务安全的选项,以及更好的Blob字符的处理性能。