@
目录一、Mysql体系结构概览
整个 MYSQL Server由以下组成:
- Connection Pool: 连接池组件,接收请求后开启一个线程进行相关的认证授权操作后,再进行相关请求的处理;
- Management Service & Utilities:管理工具和服务组件;主要进行数据的备份与恢复。
- SQL Interface:SQL组件接口;主要进行相关的DML语句、DDL语句、存储过程、视图、触发器等封装。
- Parser:查询分析器组件;主要进行SQL语句的解析。
- Optimizer:优化器组件;主要进行SQL语句的优化处理。
- Caches & Buffers:缓冲池组件;查询缓存中是否有对应的数据,存在的话直接返回即可。
- Pluggable Storage Engines:存储引擎。负责MySQL中数据的存储和提取。
- File System:文件系统 。将数据存储到文件系统之上,并完成与存储引擎的交互。
四层结构:
MySQL与其它数据库相比,主要差异体现在它的存储引擎上,插件式的存储引擎架构,将查询处理和其它系统任务以及数据的存储提取和分离。这种架构可以根据实际需要切换存储引擎。
二、存储引擎概述
存储引擎就是存储数据,建立索引,更新查询数据等等技术的实现方式。存储引擎是基于表的,而不是基于库的。所以存储引擎可以被称为表类型。
查看数据库全部的存储引擎: show engines;
查看默认的存储引擎:show variables like '%storage_engine'
;
三、各种存储引擎特性
- innoDB 支持事务、行锁、外键;
- innoDB是唯一支持外键的存储引擎;
- innoDB 的事务控制:
create table if not exists `goods_innodb`(
id int not null auto_increment,
name varchar(20) not null,
primary key(id)
) engine=innodb default charset=utf8;
# 开启事务
start transaction;
insert into goods_innodb(id,name) values(null,'zhangsan');
commit;
1. Innodb存储引擎的存储方式
2.MyISAM存储引擎的特性
- 简介:
MyISAM 不支持事务、外键,且为表锁。但是它的优势是访问速度快,对事务的完整性没有要求或者以 SELECT、INSERT为主的应用基本都可以使用这个引擎来创建表。 - 两个重要的特点:
- 不支持事务
- 文件存储模式
3. 存储引擎的选择
对安全性、事务的完整性要求比较高的时候选择 InnoDB;如果多数情况下只是读取和插入操作,很少用到删除和更新操作,那么选择 MyISAM 存储引擎会更快一些;Memory 将数据保存在内存中,通常用于更新频率不太频繁的小表,用于快速得到访问结果;MERGE就是一组MyISAM表的形式,将多个表分布在不同的磁盘上,适合用于数据仓储等情况。