第6章 数据库性能测试-mysql篇
第6章 数据库性能测试-mysql性能测试
1、mysql数据库分支介绍
2、mysql数据库监控指标
-
QPS
-
TPS
-
线程连接数
-
Query Cache
- Query Cache命中率
- Query Cache命中率
-
锁定状态
-
主从延时
3、mysql慢查询工作原理及操作
-
慢查询定义
-
慢查询开启
-
慢查询日志分析
-
举例
4、SQL的分析与调优方法:SQL语句性能分析
- explain执行计划
- 用法:explain select 语句,explain select * from user;
- explain返回结果分析
5、mysql索引的概念及作用
1、普通索引 index:加速查找
-
最基本的索引,没有任何限制
2、唯一索引:(primary key / unique) -
主键索引 primary key :加速查找+约束(不为空、不能重复)
- 它是一种特殊的唯一索引,不允许有空值
- 默认的id,
-
唯一索引 unique:加速查找+约束(不能重复)
- 索引猎德值必须唯一,但允许有空值
3、全文索引
- fulltext是一种只适用于myISAM标的一个索引类型。
4、联合索引
- primary key(id,name):联合主键索引
- unique(id,name):联合唯一索引
- index(id,name):联合普通索引
6、mysql索引的工作原理与设计规范
- 索引创建规范
7、mysql存储引擎:根据场景选择;
1、MyISAM 存储引擎
- 优点:
- 查询(读)的效率要优于innodb,不需要支持事务,行级锁, 外键, 可通过设置myisam来优化数据库
- 索引与数据分开,使用了压缩哟,从而提高了内存使用率
- 缺点:
- 不支持事务
- 写入数据时直接锁表;不支持行锁,只支持表锁。导致写入速度慢
2、InnoDB 存储引擎
innodb(创建表时默认的):
- 优点:
- 支持事务,行级锁,外键
- 缺点:
- 不支持fulltext索引(全文索引)
- 行级锁并不绝对,当不确定扫描范围时,锁全表
- 索引与数据是紧密捆绑的,没有使用压缩导致体积庞大
8、mysql实时监控:工具orzdba
输入启动 ./orzdba
举例:输入以下查看结果
9、mysql集群监控方案:天兔LEPUS
打开官网——点击文档——查看安装
10、mysql性能测试的用例准备,使用jmeter开发mysql性能测试脚本,执行测试
- 增删改查,参数化;
- 关注:部署好监控,指标;查看测试效果:找出速度很慢的慢查询,SQL语句是否合理,数据库的架构是否合理;异常类测试-策略切换