优化的衡量指标:
QPS:
Queries Per Seconds (每秒查询的处理量) 同时适用于 InnoDB 和 MyISAM 引擎。
QPS = QUESTIONS/UPTIME (查询的次数)/ 服务器的启动时间
TPS:
Transactions Per Seconds (每秒传输的事务处理个数),这是指服务器每秒处理的事务数,支持事务的存储引擎如 Innodb 等特有的一个性能指标。
TPS = (COM_COMMIT+COM_ROLLBACK)/UPTIME (提交事务次数+回滚事务次数)/ 服务器的启动时间
等待时间:
执行sql等待返回结果之间的等待时间。
测量工具(压测)
MysqlSlap : 官方提供的压力测试工具,具体操作步骤:
- 创建schema ,table, test, data;
- 运行负载测试,可以使用多个并发客户端连接;
- 测试环境清理 (删除创建的数据,表等,断开连接);
参数 | 作用 |
create - schema = name | 指定测试的数据库名,默认是 mysqlslap |
engine = name | 创建测试表所使用的存储引擎,可指定多个。 |
concurrency = N | 模拟N个客户进行并发执行。可指定多个值,用逗号分隔 |
number-of-queries = N | 总的测试查询次数(并发客户数*每个客户查询的次数) |
iterations = N | 迭代执行的次数,即重复的次数(相同的测试进行N次,求一个平均值),指的是整个步骤的重复次数,包括准备数据,测试load,清理 |
commit = N | 执行多条 DML 后提交一次 |
auto-generate-sql,-a | 自定生成的测试表和数据,表示用 mysqlslap 工具自己生成的sql 脚本来测试并发压力 |
auto-generate-sql-load-type = name | 测试语句类型。代表要测试的环境是读操作还是写操作还是两者混合的,默认值是mixed(读写都测试) |
auto-generate-sql-add-auto-increment | 对生成的表自动添加 auto-increment 列 |
number-char-cols = name | 自动生成的测试表中包含n 个字符类型的列,默认为1 |
number-int-cols = name | 自动生成的测试表中包含n 个数字类型的列,默认为1 |
debug - info | 打印内存和cpu的信息 |
程序目录:cmd 命令行 将命令输入
说明: 该指令会对mysql 进行压测,其命令的含义为:启动1000个线程,迭代10次,使用自增策略,创建的表的存储引擎为innodb,总的查询次数为1000,也就是每个线程执行一次读或写的操作。
学习年限不足,知识过浅,说的不对请见谅。
世界上有10种人,一种是懂二进制的,一种是不懂二进制的。