高性能MySQL笔记(第一章 MySQL架构与历史)

p37~p69.

架构

MySQL服务器分3层.
第1层提供连接功能, 有连接处理, 授权认证, 安全等;
第2层提供核心服务, 包括查询解析, 分析, 优化, 缓存以及所有的内置函数(如日期, 时间, 数学和加密函数), 所有的跨存储引擎的功能都在这一层实现: 存储过程, 触发器, 视图等.
第3层包含了存储引擎, 复杂MySQL钟数据的存储和提取. 第2层通过API与存储引擎进行通信. API包含几十个底层函数, 用于执行诸如开始一个事务或者根据主键提取一行记录

每个客户端连接都会在服务器进程钟拥有一个线程, 这个连接的查询只会在这个单独的线程中执行.

读锁是共享的, 多个客户可以在同一时刻读同一资源. 写锁是排它的, 会阻塞其他的写锁和读锁.

锁分表锁和行锁. MyISAM引擎不支持行锁, InnoDB和XtraDB支持行锁.

事务

ACID, 原子性(atomicity), 一致性(consistency), 隔离性(isolation), 持久性(durability).

隔离级别分4级, 从低到高, READ UNCOMMITTED(未提交读), READ COMMITTED(提交读), REPEATABLE READ(可重复读, 默认), SERIALIZABLE(可串行化).

存储引擎

存储引擎类型是表级别的, 对于一个库(schema)中的表, 可以使用不同的存储引擎.
自带的InnoDB和MyISAM. MyISAM有几个重大的缺陷, 不支持事务, 没有行级锁, 崩溃后无法安全恢复. 一般不推荐使用MyISAM. 现在MySQL5.6支持的存储引擎如下:

MySQL的发展历史

MySQL5.0支持视图, 触发器, 存储过程, 存储函数.
MySQL5.1是sun收购MySQL AB后发布的首个版本.
MySQL5.5是Oracle收购sun以后发布的首个版本. 之后MySQL的创始人Michael Widenius开发了MariaDB的研发, 这是MySQL的GPL开源版本. Maria5.5版本之前的版本几乎和MySQL是一样的.
还有一个知名的版本是"Percona Server", 包含自己研发的XtraDB存储引擎, 参考Percona.

猜你喜欢

转载自www.cnblogs.com/winwink/p/HighPerformanceMySql_Chapter1_SchemaAndHistory.html