在单元测试期间,我们一直在导入大量灯具,并且我们已经到了对整个测试运行时间产生严重影响的程度。我们已经将我们的mysql测试数据库放在ramdisk上,而不是每次创建表的备份时重新导入数据并执行INSERT INTO ... SELECT FROM。
下一步是仅为已修改的表而不是所有涉及的模型重新导入数据,但我正在寻找一种快速检测哪些表的方法。
如果尝试使用表上的触发器(插入,更新和删除),将表的名称添加到变量(因为将其插入临时表更慢)。在我们的夹具管理器中,我只读出变量,重置这些表并清除变量值。
然而,触发器大大减慢了一切,显然mysqls的触发器实现并不是那么好,即使它几乎什么都不做。
问题是:是否有另一种非常可靠的方法来检测上次修改表数据的时间?检查文件修改时间也不起作用,因为mysql不会立即清除缓存。
我们的表位于innoDB中。