我们有带有before_create触发器的模型,如下所示:
def set_location_id
self.location_id = Location.find_by(code: location_code).id
end
def set_product_id
self.product_id = Product.find_by(code: product_code).id
end
你认为将那些rails触发器移动到PostgreSql是个好主意吗?
性能怎么样?
答案 0 :(得分:1)
在插入触发器之后或之前使用PostgreSQL肯定会比Ruby(activerecord)before_create更快更高效。但是你的代码将变得非常难以维护。现在,您的软件业务逻辑将位于两个不同的位置 1)在rails应用程序中存储过程 2)在你的铁轨模型
具有两个不同的位置将使得将来难以调试和编程。
答案 1 :(得分:0)
我将告诉您目前我采用的有关性能优化的一些规则:
现在各自考虑: