MySQL数据库操作(七)__2018.11.13

MySQL数据库的存储引擎:MySQl5.5之后使用的默认存储引擎是InnoDB,5.5之前默认使用的MyIsAm。

MySQL的体系架构图。

DBA。

MySQL是由SQL接口、解析权,优化器,缓存和存储引擎来组成。

1.connectors指的是不同语言中和数据库SQL进行交互的API接口

2.Management Services &unilites:系统管理和工具

3.Connection Pool(连接池):管理用户连接、线程处理。

4.SQL interface:接受用户的SQL指令,并且返回需要查询的结果。

5.Parser(解析器):先验证是否正确,再按照块进行解析。

6.Optimizer(查询优化器):选取-投影-联接。(结果集)

7.Caches&Buffers(查询缓存):

8.Engine(存储引擎):特点和适应场景。

9.FileSystem(文件系统):

engine:存储引擎名称

support:是否支持此存储引擎

comment:存储引擎的注释

transactions:是否支持事务

XA:是否支持分布式交易处理的XA规范

save points:是否支持保存点,以便事务回滚到保存点。

查看默认的存储引擎:show variables likes 'storage_engine';

存储引擎的特点和适用场景

memory存储引擎

内存表。

#测试memory存储引擎(内存表)
CREATE TABLE m1(
	a VARCHAR(100)
)ENGINE=MEMORY;

此时它会在磁盘中独立的创建一个以表名为文件名的文件。

frm只保存结构定义,不保存数据文件。数据保存在内存中,读写效率高,磁盘中只产生一个以表明为.frm的文件,只保存表结构。

如果关闭MySQL服务,此时数据会丢失。

使用的默认最大内存空间是16M

查看当前表结构的状态:

不同存储引擎产生的文件不同。

内存表的使用场景,是即使发生丢失,也不会影响业务的情况下。

CSV存储引擎:基于csv格式存储数据的方式。

#测试CSV存储引擎
CREATE TABLE c1(
	a VARCHAR(20)NOT NULL,
	b VARCHAR(20)NOT NULL
)ENGINE=csv;

CSV所有的列不支持空值,所有的字段都必须设置为NOT NULL

INSERT c1(a,b)VALUES('AAA','BBB');
INSERT c1(a,b)VALUES('CCC','DDD');

csv:保存数据

csm:保存状态

直接在excell中修改表内容。会损坏数据库。

check table table_name;检查表结构是否损坏

repair table table_name;修复表结构

archive存储引擎:做归档用,适合归档,会对数据进行一个压缩,压缩算法是一个无损压缩。

查看表状态:

#测试archive存储引擎
CREATE TABLE a2 ENGINE=ARCHIVE AS SELECT *FROM a1;

会产生两个文件,一个是对文件的打包,另一个是对文件状态的记录。

适用场景:对不常使用又不能删除的文件进行存储时就可以使用archive存储引擎来做一个归档了。

这个存储引擎的压缩算法可以把数据压缩的很小。

frm都是结构文件。.arz是数据文件。

插入效率很高(做了优化),占用空间很小。

缺陷:不支持修改(update)、删除(delect)、替换(replace),只支持select和insert。

39

猜你喜欢

转载自blog.csdn.net/weixin_40316053/article/details/84037008