2mysql技术教程
======================
mysql体系结构
mysql简历在一个层次体系结构上
由住子系统和辅助部件组成
他们之间呼吸那个配合
主子系统
由五个主子系统组成,他们协同工作,响应mysql数据库服务器发出的请求
五个子系统分别是:
查询引擎
存储管理器
缓冲管理器
事务管理器
恢复管理器
---------
查询引擎
包括三个相互关联的部件:
语法分析器
查询优化器
执行部件
----------
存储管理器
存储管理器与操作系统想配合,有效的向磁盘存入数据。
----------
缓冲管理器
内存管理
----------
事务管理器
保证数据一致性,提供锁
----------
恢复管理器
--------------------------
辅助部件
包含两个辅助部件
过程管理器和函数库
过程管理器:
提供两个功能:
1通过与客户连接的网络管理模块管理用户连接
2通过多线程、县城加锁和执行县城安全操作模块使竞争性的任务和过程同步
函数库:
包含被其他所有子系统使用的通用例程
包含字符串处理程序
排序操作程序
内存管理
文件io等操作系统特定功能
--------------
mysql特性
事务:
支持以下特性
原子性
一致性
分离性
持久性
原子性:
事务被定义为一系列动作,当一个或者多个sql语句作为一个单元运行时事务就发生了
在事务中一个语句没有完成,整个单元都会回滚。
事务开始的标记为一个begin语句,知道发布一个commit命令完成动作
一致性:
当每一个事务使得系统处于一致状态时 ,不管事务成功还是中途失败,一致性都会存在
mysql的一致性主要由日志机制来处理
日志记录数据库所做的所有改变,并为事务恢复提供检查跟踪一句
如果事务执行中途关机,mysql恢复程序将使用这些日志来检查事务是否顺利完成,必要时回滚
出了日志程序外,明月三千里还提供了锁定机制,保证组成事务的所有表、行和索引由初始化程序锁定足够长的时间,以便提交事务或者回滚事务
分离性:
分离性意味着每个事务在各自的空间内发生,与系统内可能发生的其他事务相互独立
还意味着只有组成事务的全部事件序列完全被执行后,事务的结果才可见
持久性:
持久性意味着即使在系统崩溃时,也要保存已提交的事务所做的改变
当一个事物完成并且数据库的日志被更新时,持久性就开始作用
innodb对崩溃前最后一秒的数据变化情况有100%的持久性
----------------