iOS程序员@IT·互联网

从SQL Server到MySql(1) : MySql 基础知

2015-10-17  本文已影响851人  沪上最强亚巴顿

用了多年的SQL Server 后, 最近开始转用Mysql 作为主要的数据库. 此系列文章记录了此间学到了知识和经验.

作为开篇, 首先介绍的是MySql 的一些基础知识.

1. MySql 逻辑架构

MySq 存储引擎最与众不同的特性是它的存储引擎架构. 这种架构将查询处理(Query Processing) 以及其它系统任务(Server Task)和数据的存储/提取 进行了分离.

这样存储和处理相分离的设计, 可以在使用时根据性能,特性,以及其它需求来选择数据存储的方式.

例如, 可以主表使用InnoDB, 而用MyISAM作为缓存表的引擎, 将会得到更小的索引暂用空间, 并且可以做全文搜索.

从逻辑上, MySql 架构分为三层: 连接/线程处理层; 核心服务层; 存储引擎.

1.1 连接/线程处理层

类似大多数基于网络的C/S 工具或服务. 盖层主要负责连接处理, 授权认证, 安全等等.

每个客户端连接在服务器进程中拥有一个线程. 服务器会负责缓存线程, 从而不需要频繁新建销毁.

1.2 核心服务层

包含查询解析, 分析, 优化, 缓存以及所有的内置函数.

该层同时实现了所有跨存储引起的功能: 存储过程, 触发器, 视图等.

1.3 存储引擎

2 并发控制时的锁

3 MySql 中的事务

3.1 隐式和显式锁定

3.2 事务日志

事务日志也被成为预写式日志(Write-Ahead Logging). 修改数据需要两次写磁盘.
若在数据还未写回磁盘时崩溃, 会在重启后自动修复该部分修改的数据.

3.3 多版本并发控制(MVCC)

4 MySql 存储引擎

4.1 存储

4.2 InnoDB

4.3 MyISAM

上一篇 下一篇

猜你喜欢

热点阅读