Mysql 我们自己该走哪条路。

Mysql 我们自己该走哪条路。,mysql,triggers,Mysql,Triggers,首先,感谢@Brandon的回应。我建立了自己的脚本和测试数据库来测试和解决我的问题。。。虽然我对第1点和第3点没有很好的答案,但我确实对性能问题有一个答案 注意,我在开发服务器上使用的是10.0.24-MariaDB,当时它没有运行任何其他东西 这是我的结果 正在更新100000行: TRIGGER QUERY TIME: 6.85960197 SECONDS STANDARD QUERY TIME: 5.90444183 SECONDS TRIGGER QUERY TIME: 13.199

首先,感谢@Brandon的回应。我建立了自己的脚本和测试数据库来测试和解决我的问题。。。虽然我对第1点和第3点没有很好的答案,但我确实对性能问题有一个答案

注意,我在开发服务器上使用的是10.0.24-MariaDB,当时它没有运行任何其他东西

这是我的结果

正在更新100000行:

TRIGGER QUERY TIME: 6.85960197 SECONDS
STANDARD QUERY TIME: 5.90444183 SECONDS
TRIGGER QUERY TIME: 13.19935203 SECONDS
STANDARD QUERY TIME: 11.88235188 SECONDS
正在更新200000行:

TRIGGER QUERY TIME: 6.85960197 SECONDS
STANDARD QUERY TIME: 5.90444183 SECONDS
TRIGGER QUERY TIME: 13.19935203 SECONDS
STANDARD QUERY TIME: 11.88235188 SECONDS

你们可以自己决定走哪条路。

你们知道你们测量的基本上是硬盘的I/O容量吗?除非有人拥有与您完全相同的HDD子系统,否则这些数字毫无意义。触发器会增加开销,因为每种额外的工作都会增加。如果您想要性能,请使用最快的硬件尽可能减少工作量(是的,我知道这是显而易见的)。此外,如果将其包装在事务块中,则可以利用驱动器的bandwith并保存I/O,从而提高性能。另一方面,如果我是你,我会使用事件调度器并定期运行一个过程进行清理。这些数字并不是毫无意义的,是的,其他使用不同系统的人会得到不同的结果,对于相当标准的MariaDB服务器,这些数字表明非触发方法的事务速度略有提高,仅仅因为你不觉得这些信息有用并不意味着其他人不会。你知道你测量的基本上是你硬盘的I/O容量吗?除非有人拥有与您完全相同的HDD子系统,否则这些数字毫无意义。触发器会增加开销,因为每种额外的工作都会增加。如果您想要性能,请使用最快的硬件尽可能减少工作量(是的,我知道这是显而易见的)。此外,如果将其包装在事务块中,则可以利用驱动器的bandwith并保存I/O,从而提高性能。另一方面,如果我是你,我会使用事件调度器并定期运行一个过程进行清理。这些数字并不是毫无意义的,是的,其他使用不同系统的人会得到不同的结果,对于相当标准的MariaDB服务器,这些数字表明非触发方法的事务速度略有提高,仅仅因为你不觉得这些信息有用并不意味着其他人不会。