是否有一个简单的命令可以让我调整一个MySQL数据库实例来运行慢?
我正在研究记录和重放数据库交互的代码。它所做的一件事就是跟踪给定查询/命令执行的时间,如果它在重放期间运行得非常慢,则会发出警告。当然,如果你不测试它,它不起作用;我正在尝试为此功能进行自动测试。我可以对我的测试数据库做些什么来搞砸性能?我需要做的就是可靠地为任何给定的查询添加2+毫秒,我就设置了。
答案 0 :(得分:9)
如果您只想测试长查询,请执行以下操作:SELECT SLEEP(1);
如果您想要做的就是测试您的持续时间检测是否有效,那么查询本身应该是什么并不重要。
(我知道这打破了真正的“重播”方面,但在“回放”期间将SLEEP(1)
添加到某些选择语句中应该是微不足道的。)
编辑:
您可能更喜欢的第二个想法:从另一个连接创建对表的锁定。运行脚本。等一会儿。删除该锁。它不会涉及到任何回放查询的混乱。
答案 1 :(得分:1)
基本程序如下:
开始交易
做你的sql东西
在perl或sql中睡2ms
提交
密钥是开始/提交部分:它会保留您获得的任何锁定,使得事情变得如您所愿。“
需要考虑的其他测试:
在两个流程中开始交易
在第一个过程中执行你的sql东西
在第二个过程中执行你的sql工作
在每个流程中执行更多sql工作
提交每个流程