TPC-C测试用到的模型是一个大型的商品批发销售公司,它拥有若干个分布在不同区域的商品仓库。
当业务扩展的时候,公司将添加新的仓库。每个仓库负责为10个销售点供货,其中每个销售点为3000个客户提供服务,每个客户提交的订单中,平均每个订单有10项产品,所有订单中约1%的产品在其直接所属的仓库中没有存货,必须由其他区域的仓库来供货。
同时,每个仓库都要维护公司销售的100000种商品的库存记录。
所以可以通过调整仓库数量(W)来,来调整体的数据量等级。
TPCC-MYSQL是TPC-C规范的一个实现。
- 标准由来
TPC(Transaction Processing Performance Council,事务处理性能委员会)是由数十家会员公司创建的非盈利组织,总部设在美国。TPC的成员主要是计算机软硬件厂家,而非计算机用户,其功能是制定商务应用基准程序的标准规范、性能和价格度量,并管理测试结果的发布。
- 表数据量与初始化仓库数量的关系
表名 | 一个仓库 | 2个仓库 | 6个仓库 | 变化 |
---|---|---|---|---|
customer | 30000 | 60000 | 180000 | 增加 |
district | 10 | 20 | 60 | 增加 |
history | 30000 | 60000 | 180000 | 增加 |
item | 100000 | 100000 | 100000 | |
new_orders | 9000 | 18000 | 54000 | 增加 |
order_line | 299976 | 598908 | 1799838 | 增加 |
orders | 30000 | 60000 | 180000 | 增加 |
stock | 100000 | 200000 | 600000 | 增加 |
warehouse | 1 | 2 | 6 | 增加 |
合计 | 598987 | 1096930 | 3093904 | 增加 |
仓库数量与数量是线性对应的,总数据量可以近似的认为是50万*仓库数量。
- 查看表数据量的SQL
select count(1),'customer' from customer
UNION ALL
select count(1),'district' from district
UNION ALL
select count(1),'history' from history
UNION ALL
select count(1),'item' from item
UNION ALL
select count(1),'new_orders' from new_orders
UNION ALL
select count(1),'order_line' from order_line
UNION ALL
select count(1),'orders' from orders
UNION ALL
select count(1),'stock' from stock
UNION ALL
select count(1),'warehouse' from warehouse
-c参数决定了并发连接数量,每个并发就会建立一个数据库连接,持续进行业务操作
在mysql中可以使用 show processlist查看连接数量以及正在执行的SQL语句
执行后数据量的变化情况
表名 | 一个仓库 | 第一次执行后 | 第二次执行后 | 变化 |
---|---|---|---|---|
customer | 30000 | 30000 | 30000 | |
district | 10 | 10 | 10 | |
history | 30000 | 35276 | 39797 | 增加 |
item | 100000 | 100000 | 100000 | |
new_orders | 9000 | 8941 | 8896 | 先增加,后减少 |
order_line | 299976 | 352177 | 397143 | 增加 |
orders | 30000 | 35221 | 39696 | 增加 |
stock | 100000 | 100000 | 100000 | |
warehouse | 1 | 1 | 1 | |
合计 | 598987 | 661626 | 715543 | 增加 |