- yum install bzr -y
- bzr branch lp:~percona-dev/perconatools/tpcc-mysql
下载之后可以看到tpcc-mysql目录
进入这个目录下的src目录,执行make
在上层目录中,可以看到已经有了tpcc_load tpcc_start命令
如果有如下错误,则可能是源码安装的MySQL,所以它的库不在默认的位置
- error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
- ln -s /home/lihuilin/mysql/lib/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.18
- create database tpcc;
- MySQL配置如下
- max_connections=3000
- innodb_buffer_pool_size=1G
- innodb_flush_log_at_trx_commit = 1
- sync_binlog=1
- innodb_support_xa=1
首先加载数据,执行创建表和约束的SQL

这个工具是模拟仓库的系统,
可以选择初始化仓库的数量,数量越大,数据量也越大。

初始化10个仓库

开始进行基准测试,其中w指仓库数量,c指并发数量,r是预热时间,l是测试运行时间
- [root@mysql1 tpcc-mysql]# ./tpcc_start -h 127.0.0.1 -u xx -p xx -d tpcc -w 10 -c 200 -r 10 -l 60 -i 10 -f report -t trx
- Usage: tpcc_start -h server_host -P port -d database_name -u mysql_user -p mysql_password -w warehouses -c connections -r warmup_time -l running_time -i report_interval -f report_file -t trx_file
TPCC-MySQL输出结果包括五个业务逻辑,这五个业务逻辑构成了TPCC-MySQL测试的整个事务处理过程。具体如下所示:
New-Order:新订单
Payment:支付
Order-Status:订单查询
Delivery:发货
Stock-Level:库存
预定义变量:
为了能够清晰的说明以下内容,首先定义一些变量,便于以下的计算和说明。具体如下所示:
success = 执行成功的记录数
late=执行延迟的记录数
pre_success=上一次执行成功的记录数
pre_late=上一次执行失败的记录数
根据以上定义的变量,计算相应字段的结果和说明相应字段的含义。
1、时间间隔内成功的事务(包括成功和延迟的事务):sl=success+late-pre_success-pre_late
2、时间间隔内延迟的事务:l=late-pre_late
3、时间间隔内前90%记录(实际为99%)的平均响应时间:rt90
4、时间间隔内最大的响应时间:max_rt
查看TPCC的结果
- 新订单模块 支付模块
- sl(l):rt90|max_rt1822成功(0延迟):90%平均响应时间1.256|最长响应时间4.119
- 10, 1879(6):4.024|9.398, 1822(0):1.256|4.119, 190(0):0.712|2.017, 186(0):5.227|5.929, 191(0):18.450|24.997
- [0] sc:8677 lt:13 rt:0 fl:0 //新订单数
-
[1] sc:8620 lt:1 rt:0 fl:0 //支付业务
-
[2] sc:872 lt:0 rt:0 fl:0 //查询业务
-
[3] sc:878 lt:0 rt:0 fl:0 //发货业务
-
[4] sc:871 lt:0 rt:0 fl:0 //库存查询
- in 60 sec.
(all must be [OK]) - [transaction percentage]
-
Payment: 43.25% (>=43.0%) [OK] //支付模块占总业务的43.25%
-
Order-Status: 4.37% (>= 4.0%) [OK] //订单模块占总业务的4.37%
-
Delivery: 4.40% (>= 4.0%) [OK] //发货模块占总业务的4.40%
-
Stock-Level: 4.37% (>= 4.0%) [OK] //库存模块占总业务的4.37%
-
[response time (at least 90% passed)] //是否满足指标
- New-Order: 99.85% [OK]
- Payment: 99.99% [OK]
- Order-Status: 100.00% [OK]
- Delivery: 100.00% [OK]
- Stock-Level: 100.00% [OK]
//指标如下
New-Order 5ms
Payment 5ms
Order-Status 5ms
Delivery 80ms
Stock-Level 20ms
-
8690.000 TpmC //每分钟可完成新订单业务8690笔
- innodb_buffer_pool_size=512m
可以看到性能有明显下降。
然后修改MySQL配置,再次运行相同测试
sc:success,lt:late,rt:retry,fl:failure
创建一个测试数据库,然后使用如下配置进行基准测试
创建软链接可以解决这个问题。
TPCC-MySQL是Percona公司研发的基准测试工具。
下载TPCC-MySQL

在数据库优化中,应根据查询需求选择索引策略:1.当查询涉及多个列且条件顺序固定时,使用复合索引;2.当查询涉及多个列但条件顺序不固定时,使用多个单列索引。复合索引适用于优化多列查询,单列索引则适合单列查询。

要优化MySQL慢查询,需使用slowquerylog和performance_schema:1.启用slowquerylog并设置阈值,记录慢查询;2.利用performance_schema分析查询执行细节,找出性能瓶颈并优化。

MySQL和SQL是开发者必备技能。1.MySQL是开源的关系型数据库管理系统,SQL是用于管理和操作数据库的标准语言。2.MySQL通过高效的数据存储和检索功能支持多种存储引擎,SQL通过简单语句完成复杂数据操作。3.使用示例包括基本查询和高级查询,如按条件过滤和排序。4.常见错误包括语法错误和性能问题,可通过检查SQL语句和使用EXPLAIN命令优化。5.性能优化技巧包括使用索引、避免全表扫描、优化JOIN操作和提升代码可读性。

MySQL异步主从复制通过binlog实现数据同步,提升读性能和高可用性。1)主服务器记录变更到binlog;2)从服务器通过I/O线程读取binlog;3)从服务器的SQL线程应用binlog同步数据。

MySQL是一个开源的关系型数据库管理系统。1)创建数据库和表:使用CREATEDATABASE和CREATETABLE命令。2)基本操作:INSERT、UPDATE、DELETE和SELECT。3)高级操作:JOIN、子查询和事务处理。4)调试技巧:检查语法、数据类型和权限。5)优化建议:使用索引、避免SELECT*和使用事务。

MySQL的安装和基本操作包括:1.下载并安装MySQL,设置根用户密码;2.使用SQL命令创建数据库和表,如CREATEDATABASE和CREATETABLE;3.执行CRUD操作,使用INSERT,SELECT,UPDATE,DELETE命令;4.创建索引和存储过程以优化性能和实现复杂逻辑。通过这些步骤,你可以从零开始构建和管理MySQL数据库。

InnoDBBufferPool通过将数据和索引页加载到内存中来提升MySQL数据库的性能。1)数据页加载到BufferPool中,减少磁盘I/O。2)脏页被标记并定期刷新到磁盘。3)LRU算法管理数据页淘汰。4)预读机制提前加载可能需要的数据页。

MySQL适合初学者使用,因为它安装简单、功能强大且易于管理数据。1.安装和配置简单,适用于多种操作系统。2.支持基本操作如创建数据库和表、插入、查询、更新和删除数据。3.提供高级功能如JOIN操作和子查询。4.可以通过索引、查询优化和分表分区来提升性能。5.支持备份、恢复和安全措施,确保数据的安全和一致性。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Dreamweaver Mac版
视觉化网页开发工具

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

WebStorm Mac版
好用的JavaScript开发工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)