我在表中定义了一个触发器,对于每个插入,更新或删除,都会填充另一个表。 这会对整体数据库function有任何性能影响吗? 触发器有没有其他的select可以有更好的performance?
它会影响性能吗? 是。 数据库将有更多的工作要做,所以性能将受到影响。 但是这很重要吗? 根据你的触发器在做什么,你的表格结构和数据库上的基本负载,对最终用户来说影响可能是不明显的。 如果你真的需要担心这个,那么我会build议分析数据库有无触发器,以确定成本是否太高,它提供了什么。
至于替代scheme,你没有提到你使用的数据库,有些数据库像Postgresql提供了一个规则系统,它的实现方式不同于它们的触发系统,它们对你的用例可能会有不同的performance。 再次,您必须对系统进行configuration,并查看哪个性能更好,以满足您的确切需求。
根据您的使用情况和您的数据,另一种select可能是用非高峰使用时间内运行的小应用程序来replace触发器,以提供相同的function。
我想提一下,如果一切正常,最终用户对系统性能感到满意,那么我现在就不用担心触发器的影响了。 为了获得更好的性能而寻求更好的性能可能浪费时间和资源,如果它没有解决当前或预见的问题。