mysql 体系结构和存储引擎
1.1 定义数据库和实例
- 数据库: 物理操作系统和其他信息文集类型的集合。在mysql数据库中,数据库文件可以是frm.MYD.MYI.ibd结尾的文件
- 实例:Mysql数据库由后他线程已经一个共享内存区组成。
mysql读取配置文件顺序
/etc/my.cnf ->/etc/mysql/my.cnf -> /usr/local/mysql/etc/my.cnf -> ~/.my.cnf
mysql数据库以哪个配置为准??
mysql数据库会以读取到最后一个配置问中的参数为准
1.2 MySql 体系结构
mysql 组成部分
-
连接池组件
-
管理服务和工具组件
-
SQL 接口组件
-
查询分析器组件
-
优化器组件
-
缓存组件
-
插件式存储引擎
-
物理文件
重点:存储引擎是基于表,不是基于数据库
1.3 MySQL 存储引擎
1.3.1 InnoDB存储引擎
特点: 行锁设计、支持外键 、支持事务
通过使用多版本并发控制(MVCC)来获得高并发性
特性: 插入缓存(insert buffer) 、二次写(double write)、自适应哈希索引(adaptive hash index)、预读(read aheda)
1.3.2 MyISAM存储引擎
MyISAM存储引擎不支持事务、表锁设计、支持全文索引
特点:1.缓存池只缓存索引文件,而不缓存数据文件
文件:MYD和MYI组成,MYD用来存储数据文件,MYI用来存储索引文件
1.3.3 NDB存储引擎
NDB存储引擎是一个集群存储引擎
特点:数据全部放在内存中
1.3.4 Memory (HEAP)存储引擎
将表中的数据存放在内存中
场景:适合使用存储临时数据的临时表
默认使用hash索引
支持表锁,并发性能较差,并且不支持TEXT和BLOB列类型
1.3.5 Archive 存储引擎
Archive存储引擎之支持INSERT和SELECT操作
使用zlib算法将数据行进行压缩存储
场景:适合存储归档数据(如日志信息)
1.3.6 Federted存储引擎
1.3.7 Maria存储引擎
Maria存储引擎是新开发引擎,设计目标主来取代MYISAM存储引擎
特点: 支持缓存数据和索引文件,应用行锁设计,提供mvcc功能,支付事务和非事务安全的选项
1.3.8 其他存储引擎
InnoDB存储引擎
文件
表
索引与算法
锁
事务
备份与恢复
性能调优
InnoDB存储引擎元代码的编译和调试
注意:本文归作者所有,未经作者允许,不得转载