MYSQL架构、存储引擎
0.总述
1.MySQL的架构
2.存储引擎
3.索引
4.事务
5.触发器
6.存储过程
1.MYSQL服务器端的架构
MySQL数据库:插件式存储引擎的数据库
2.存储引擎:是基于表建立的
用: show engines; 命令进行查看
一个表有一个存储引擎
0.索引:是基于字段建立的、事务、锁
1.MyISAM(存储在磁盘上)
特点:不支持外键,不支持事务,全文索引,底层是B+树作为索引结构,表锁
数据和索引是分离开来设计的 非聚集索引
不支持事务,支持全文索引,但是对于一些在线分析处理操作速度快。
文件组成由 myd 存放数据的 myi存放索引的
2.InnoDB(存储在磁盘上)
特点:支持外键,支持事务,不支持全文索引,底层是B+树作为索引结构,行锁
索引当成数据一部分存储 聚集索引
支持事务,主要是面向在线事务处理方面的应用,特点是行锁设计,并支持外键。Innodb采用聚集索引的方式。没有主键,没有唯一键,为每一行生产一个6字节的行id,作为主键。
3.MEMORY(存储在内存上)
既要在内存上读取数据,又要在磁盘上读取数据,效率太低
将数据放在内存中,如果数据库重启或者宕机,表数据就会丢失。非常适合存储一些临时表,默认的是哈希索引,不是B+树索引,varchar()默认是按照char()存储的,浪费内存。
不支持text和BLOB类型。如果数据中有text和BLOB类型,数据库会把这些数字转换到磁盘上。
4.ARCHIVE
只支持INSERT和SELECT操作,使用压缩算法将数据进行压缩后存储,压缩比例一般是1:10,主要提供插入和压缩功能。
不支持update,delete,不然还得解压然后修改