MySQL服务器逻辑架构
最上层:连接处理,授权认证,安全。这个是客户端连接数据库服务器,并且这个客户端获取怎样的权限,比如只是读而不能写。
中间层:大多数MySQL的核心服务功能都在这一层,包换查询解析、分析、优化、缓存以及所有的内置函数。所有跨存储引擎的功能都在这一层实现:存储过程、触发器、视图等。
最底层:存储引擎。存储引擎出在MySQL中数据的存储和提取。服务器通过API与存储引擎进行通信。存储引擎屏蔽底层的复杂,提供API让上层去使用。也就是如果理解中间层提供的服务与存储引擎的交互过程,那么算是理解了精髓。
重要知识点:
1,并发控制。无论在什么时候,只要有多个查询需要在同一时刻修改数据,都会产生并发控制问题。
锁粒度,表锁与行锁。
读写锁。
2,事务。原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durability)ACID
隔离级别:
一: READ UNCOMMITTED (未提交读)
二: READ COMMITTED (提交读)
三:REPEATABLE READ (可重复读)
四:SERIALIZABLE (可串行化)
小结:这三层逻辑架构,需要深入理解整个过程。比如它是怎么进行查询解析的?如何分析的?又是怎么缓存的?不同存储引擎的优势与劣势?特性是什么?
MySQL的存储引擎
重点,学习InnoDB存储引擎,理解性能,特性。了解MyISAM特性性能适用场合等。
MySQL最初基于ISAM后来被MyISAM取代,其后又添加了更多的存储引擎和事务支持。对于InnoDB来说,所有的操作都是事务。根据具体情况,选择合适的引擎,InnoDB是首先,不混合使用存储引擎。
MySQL的时间线
1,version 3.23 (2001), MySQL真正"诞生"。
2, version 4.0 (2003), 支持UNION和多表DELETE语法。重写了复制。
3,version 4.1 (2005), 子查询和INSERT ON DUPLICATE KEY UPDATE。开始支持UTF-8字符集。支持新的二进制协议和prepared语句。
4,version 5.0 (2006), 出现企业级特性,视图,触发器,存储过程和存储函数。
5,version 5.1 (2008), 分区,基于行的复制。
6,verison 5.5 (2010), 改善性能,扩展性,复制,分区。InnoDB为默认的存储引擎。质量最高的一个版本。