Mysql结构概述
Mysql可分为三层, 最顶层提供与客户端连接的服务、用户的认证以及安全检测处理;第二层是Mysql的核心层,完成数据库的搜索、匹配、分析等等工作,第二层连接着第一层与第三层;Mysql的第三层是数据的存储一层,就是一个数据仓库。用户通过第一次的认证、授权后,第二层对客户请求信息进行分析并且完成用户所需要的功能,处理信息的过程中会连接到第三层。数据库所有数据都存储在第三层,第二层用 名为“storage engine”的 API 与第三层进行通信。
Mysql连接安全管理
当客户端访问Mysql服务器的时候,都会有一个单独的进程对该客户端的进行服务。第一步所要做的,便是确认客户端的身份,再对其授权。对客户端的身份判断是通过用户名、源主机和密码进行匹配确认的。证书通过SSL(Secure Sockets Layer)进行连接。
信息优化与执行
当客户端连接服务器后,Mysql第二层就会对客户端的请求进行分析,并选择最优的算法进行数据处理。
并行控制
很多时候,会发生这种情况:同一时间,多个命令会改写同一个数据,也会发生写的同时在读的情况。这时候,就需要并发控制了。Mysql的并发控制是提供锁。MySQL提供两个级别的并发控制:服务器级(the server level,就是第二层)和存储引擎级(the storage engine level, 即是第三层)。
Mysql中的锁可分为表级锁和行级锁:
1. 表级锁:MySQL独立于存储引擎提供表锁,例如,对于ALTER TABLE语句,服务器提供表锁(table-level lock)。
2. 行级锁:InnoDB和Falcon存储引擎提供行级锁,此外,BDB支持页级锁。InnoDB的并发控制机制,下节详细讨论。
(未完)