在 Tarantool 中遍历记录时删除记录会有任何问题吗?
Can there be any problems deleting records when iterating over them in Tarantool?
捕捉这个:
for _, t in box.space.session.index.user:pairs({uid}) do
local session_id = t[F.session.id]
box.space.session:delete({session_id})
end
会不会有任何性能或正确性问题?
Tarantool 1.9
完全没问题。但是,请注意以下事项:
- 如果您不使用事务,则在遍历 space 时,您可能会也可能不会遍历正在插入的记录。
- 添加事务会提高性能
- 但是,包含数千条记录的事务可能会冻结 tarantool 的时间过长,因此最终决定取决于您的典型负载
捕捉这个:
for _, t in box.space.session.index.user:pairs({uid}) do
local session_id = t[F.session.id]
box.space.session:delete({session_id})
end
会不会有任何性能或正确性问题?
Tarantool 1.9
完全没问题。但是,请注意以下事项:
- 如果您不使用事务,则在遍历 space 时,您可能会也可能不会遍历正在插入的记录。
- 添加事务会提高性能
- 但是,包含数千条记录的事务可能会冻结 tarantool 的时间过长,因此最终决定取决于您的典型负载