基准测试通过提供反映真实场景的标准数据库结构来处理模式设计。 这些模式经过精心设计,代表了常见的用例,从而确保了不同系统之间一致的测试条件。 例如,用于事务系统的 TPC-C 基准测试使用以仓库为中心的模式,其中包含 orders
、stock
和 customer
等表,从而模仿库存管理系统。 这种预定义的结构通过消除可能歪曲结果的表设计或索引的差异,从而可以在数据库之间进行公平的比较。 模式的复杂性(例如外键关系、数据类型和规范化级别)经过专门设计,可以压力测试诸如连接性能、事务吞吐量和并发控制之类的功能。
基准测试还定义了模式如何随数据量缩放。 侧重于分析工作负载的 TPC-H 使用星型模式,其中中央 lineitem
事实表链接到诸如 part
和 supplier
之类的维度表。 该模式包括比例因子(例如,1GB、100GB)以模拟不同的数据集大小,从而确保基准测试评估系统如何处理大规模数据。 例如,10TB TPC-H 模式测试分区策略、星型连接的查询优化和存储效率。 这些缩放机制可确保模式随着硬件和数据要求的演变而保持相关性,同时在测试运行中保持可重复性。
某些基准测试允许有限的模式自定义以评估灵活性。 例如,用于 NoSQL 数据库的 YCSB(Yahoo! Cloud Serving Benchmark)允许用户定义自己的模式,但提供了默认结构,例如具有可变列的键值对。 这种方法测试了在特定工作负载下不同数据模型(例如,文档与宽列)的执行方式。 但是,大多数基准测试都强制执行严格的模式规则以隔离性能指标。 禁止诸如添加不必要的索引或反规范化表之类的偏差,以防止不公平的优化。 通过平衡标准化与受控的灵活性,基准测试可确保结果反映模式设计中的实际权衡,而不会损害可比性。