postgresql 交易应该很小,所以这太长了吗?

3yhwsihp  于 2023-11-18  发布在  PostgreSQL
关注(0)|答案(1)|浏览(149)

我听说事务应该是小的,首先我选择更新查询锁定这一行,然后我更新我的数据,所以这是太长了?
更新表产品
产品图片30张图片
更新表产品标签20
更新表产品变体10
更新表产品选项7x
所以这是太长了吗?我需要更新这些行,如果这是太长,否则我必须重新设计我的数据库,
我希望你能给予一个好的答复

rqenqsqc

rqenqsqc1#

首先需要理解的是为什么事务应该很短。这意味着事务应该花费尽可能少的时间。为什么?因为事务需要锁,当这些锁处于活动状态时,这些锁可能会阻塞其他并发事务,而当事务打开时,这些锁处于活动状态。这样,花费大量时间的大型事务会减少并发性。
另一方面,您可能需要在一个事务中包含对数据库的多个修改,以确保一致性。
此外,在单个事务中修改n行要比在n个事务中修改n行快得多。
因此,您需要决定是更喜欢并发性,还是更喜欢一致性和性能。
解决这个问题的另一种方法是尝试优化事务,使其尽可能短,以便它们花费尽可能少的时间。我建议您使用以下技术来优化它们:
1.使用基于集合的操作,而不是逐行操作。
1.使用适当的索引,以避免对那些基于集合的操作进行全表扫描。
1.使用存储过程避免多次往返数据库。
我想你的事务还没有大到可以显著减少并发的程度,因为我认为它可以在不到100毫秒左右的时间内执行。

相关问题