MySQL数据库(六):体系结构和存储引擎

管理员

一、mysql 体系结构

连接池:内存/cpu/进程数 管理工具:提供mysql数据库服务的软件自带的命令 sql接口:传递sql命令给mysqld进程 分析器:sql命令格式是否正确,对操作的库或者表是否有使用权限 优化器:优化执行的sql语句,让系统使用最少的资源去执行sql命令 写(insert create update delete) 读(select)

缓存区:在mysql数据库服务时,会划分一定系统物理内存给mysql服务做查询缓存 存储引擎:myisam innodb 文件系统:存储设备 /var/lib/mysql/DATABASENAME/TABLENAME.{frm…} 二、mysql存储引擎

1.什么是存储引擎? 处理不类型表的处理器 不同的存储引擎有不同的功能和存储方式 在建表的时候可以指定

2.注意事项 若不设置,新建的表使用mysql服务默认使用的存储引擎。

3.存储引擎的分类 1.1 myisam ㈠存储方法 独享表空间,用不同的文件存储不同的数据. .frm文件存表结构 .MYD存记录 .MYI存储索引

㈡功能 不支持外键,不支持事务,支持表锁 ㈢应用场景 查询比较多的一般使用mysiam 1.2 innodb

㈠存储方法 共享表空间(Supports transactions, row-level locking, and foreign keys),用不同的文件存储不同的数据.

.frm存放表结构 .ibd存储索引和记录

㈡功能 支持外键,支持事务,支持事务回滚,支持行锁

㈢应用场景 写操作比较多的使用innodb

4.什么是事务 一次sql操作从开始到结束的过程

5.什么是事务回滚 若一次sql没有成功,就把sql操作的数据恢复到操作时的状态

6.锁机制 为了解决并发访问的冲突问题

1.1 读锁(共享锁) 1.2 写锁(排它锁/互斥锁)

3.例子 查看存储引擎

mysql> show engines;  查看当前数据库服务支持的存储引擎

主要使用Innodb和Myisam

创建时指定存储引擎

create table man_all(id int,name varchar(20))engine=merge union=(man1,man2) insert_methos=last;