一、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;