对于我们的测试环境,我需要多次设置和拆卸数据库(每个测试应独立于其他任何程序运行)。

该过程如下:


创建数据库架构并插入必要的数据
运行测试1
删除数据库中的所有表
创建数据库架构并插入必要的数据
运行测试2
删除数据库中的所有表
...


测试用例中的每个测试的模式和数据都相同。

基本上,这可行。最大的问题是,创建和清除数据库需要大量时间。是否有可能提高mysql在创建表和插入数据方面的性能?还是您可以考虑采用其他流程进行测试?

谢谢您的帮助!

最佳答案

优化逻辑设计

逻辑级别是关于查询和表本身的结构。尝试首先最大化。目标是在逻辑级别上访问尽可能少的数据。


拥有最高效的SQL查询
设计支持应用程序需求的逻辑架构(例如,列的类型等)
设计权衡以更好地支持某些用例
关系约束
正常化


优化物理设计

物理级别处理非逻辑方面的考虑,例如索引的类型,表的参数等。目标是优化始终是瓶颈的IO。调整每张桌子以适应需要。小型表可以永久地加载到DBMS缓存中,写率低的表可以与更新率高的表进行不同的设置,以减少磁盘空间等。根据查询的不同,可以使用不同的索引等。通过物化视图等透明地对非规范化数据进行标准化处理


表参数(分配大小等)
索引(组合,类型等)
系统范围的参数(高速缓存大小等)
分区
非规范化


首先尝试改进逻辑设计,然后再改进物理设计。 (但是,两者之间的界限很模糊,因此我们可以对我的分类进行争论)。

优化维护

必须正确操作数据库,以保持尽可能高的效率。这包括一些可能会对性能产生影响的维护任务,例如


保持统计数据为最新
定期对关键表进行重新排序
磁盘维护
所有的系统内容都具有可摇动的服务器


来源:How to increase the performance of a Database?

10-04 10:44
查看更多