【一】MySql优化概述 + MySql架构与存储引擎

衡量指标

Qps:Queries Per Second 每秒查询量,同时适用于InnoDB和MyISAM引擎

QUESTIONS/UPTIME

Tps:Transactions Per Second 每秒传输的事务处理个数,这是指服务器每秒处理的事务数,支持事务的存储引擎如InnoDB等特有的一个性能指标

(COM_COMMIT+COM_CALLBACK)/UPTIME

等待时间:执行sql等待返回结果之间的等待时间

常用工具:MysqlSIap,压力测试工具

创建schema、table、test data

运行负载测试,可以使用多个并发客户端连接

测试环境清理(删除创建的数据、表等,断开连接)

目的:测试mysql服务器瓶颈

MysqlSIap参数,官方提供的压力测试工具

【一】MySql优化概述 + MySql架构与存储引擎_第1张图片

 【一】MySql优化概述 + MySql架构与存储引擎_第2张图片

Mysql架构和存储引擎

逻辑架构:

连接层:连接器、连接池,sql查询缓存默认开启缓存,查询结果缓存需要配置,默认不开启

服务层:转换器、优化器、缓存

引擎层

存储层

【一】MySql优化概述 + MySql架构与存储引擎_第3张图片

 【一】MySql优化概述 + MySql架构与存储引擎_第4张图片

存储引擎:

MyISAM:

mysql5.5之前默认的存储引擎,由MYD和MYI组成

存储文件:

xx.frm:存储表结构,是任何存储引擎都具备的

xx.myd:数据库文件

xx.myi:索引文件 (非聚集索引,因为数据与索引分开存放)

引擎特性:

并发性与所级别-表级锁

支持全文检索

支持数据压缩

不支持事务

适用场景:

非事务型应用(数据仓库、报表、日志数据)

只读类应用

空间类应用(空间函数、坐标)

InnoDB:

mysql5.5以后版本的默认存储引擎

innodb_file_per_table:

ON:独立表空间 tablename.ibd

OFF:系统表空间 ibdataX

系统表空间无法简单的收缩文件大小,会产生IO瓶颈

独立表空间可以通过optmize table收缩系统文件,独立表空间可以同时向多个文件刷新数据

建议innoDB使用独立表空间

xx.ibd 存储数据+索引

特性:

innoDB是一种事务型存储引擎

完全支持事务的ACID特性

redo log和undo log

innoDB支持行级锁(并发程度更高)

适用场景:

innoDB适合于大多数OLTP应用(联机事务处理)

MyISAM和innoDB对比

【一】MySql优化概述 + MySql架构与存储引擎_第5张图片

 

CSV:

组成:

数据以文本方式存储在文件

.csv文件存储内容

.csm文件存储表的元数据如表状态和数据量

.frm存储表结构

特点:

以csv格式进行数据存储

所有列都不能为null

不支持索引(不支持大表,不适合在线处理)

可以对数据文件直接编辑(保存文本文件内容)

使用文本修改csv数据后需要执行flush tables刷新表才能查询到最新的数据

Archive:

组成:

以zlib对表数据进行压缩,磁盘I/O更少

数据存储在ARZ为后缀的文件中

特点:

只支持insert和select操作

只允许在自增id列上加索引

使用场景:

日志和数据采集使用

Memory:

文件系统存储特点:

也称heap存储引擎,所以数据保存在内存中

支持hash索引和BTree索引

所有字段都是固定长度 varchar(10) = char(10)

不支持Blog和Text等大字段

memory存储引擎使用表级锁

最大大小由max_heap_table_size参数决定

【一】MySql优化概述 + MySql架构与存储引擎_第6张图片

 

Federated:

特点:

提供了访问远程mysql服务器上表的方法

本地不存储数据,数据全部放到远程服务器上

本地需要保存表结构和远程服务器的连接信息

使用场景:

偶尔的统计分析及手工查询

如何使用:

默认禁止,弃用需要在启动时增加federated参数

你可能感兴趣的:(MySql学习笔记,mysql,架构,数据库,db)