作者:方焱志,阿里云PolarDB-X开发工程师
数据库基准测试是对数据库进行定量的压力测试,以此评估数据库的性能,客观全面地反映数据库系统之间的性能差距。常见的基准测试工具有Sysbench、TPC组织的各类数据集,熟知的比如TPC-C、TPCH、TPC-DS等。而针对非关系型数据库或大数据的场景,也有一系列专用的测试集。
Sysbench是一款开源的多线程性能测试工具,不仅可以测试系统自身的性能指标,还内置了各种数据库负载的场景,让测试人员能够快速了解数据库系统的性能情况。系统的性能指标包括CPU、内存、文件IO、互斥锁等。而数据库负载场景则包括点查、只读、只写、读写混合、索引更新、非索引更新等,以上场景均为针对一张或多张名为sbtest的表发起的并发操作。
建表方式也很简单,包括Int类型的主键ID、带二级索引的Int类型字段k和两个char类型的字段。Sysbench不模拟真实的业务场景,而是专用于在每个场景单测专项的性能。
上图列举了其中3种场景:点查(point_select)、更新索引(update_index)、只读(read_only)。
点查为根据主键ID查询一条记录。更新索引则是根据主键ID对带索引的字段k进行自增操作。如果用户业务中有很多agg类的查询则可以使用只读场景。
TPC-C模拟了仓库订单管理的业务场景,尝试从真实应用中抽象出数据库模式和工作负载。上图左侧的数据库ER图展示了TPC-C包含的表,同时表与表之间的数据量存在一定的比例关系。比如左下角的item商品表是固定的10万条记录,而每个仓库则对应10个地区,每个地区有3000位客户,每个客户会下多笔订单。
因此,TPC-C相比Sysbench,一个很大的区别在于TPC-C模拟了真实的业务场景。
《PolarDB-X开源分布式数据库实战进阶》——对PolarDB-X进行TP负载测试(2) https://developer.aliyun.com/article/1228677?groupCode=polardbforpg