gpt4 book ai didi

mysql - mysql中多删除和多表删除哪个更快?

转载 作者:行者123 更新时间:2023-11-29 12:43:12 24 4
gpt4 key购买 nike

这个更快

/*删除用户树点*/

delete from tb_tree_points where user_guid=P_user_guid ;

/*删除tb_user_setting */

delete from tb_user_setting where user_guid=P_user_guid ;

delete from tb_tree_points as s left outer join tb_user_setting  as u
on u.user_guid=s.user_guid
where u.user_guid=s.user_guid=P_user_guid ;

作为一个查询

最佳答案

如果您不需要在单个事务中运行它们,则 2 个查询更好。如果它们位于一个查询中,则您将在两个表上都持有锁,同时删除两个表中的数据;在单独的查询版本中,您将释放第一个表上的锁,然后获取另一个表上的锁。

如果您对性能感兴趣,我假设您将使用更大的数据集执行此操作。如果数据集很小,那没关系 - 正如你所说,它们都花费相同的时间。但是,如果它很大,我会对表被锁定的时间更感兴趣。因此,我将在有一定限制的情况下循环运行查询,以允许在执行操作时运行其他查询。同样,这取决于要求 - 您是否可以只删除部分记录。如果您必须删除单个原子事务中的所有内容,那么唯一的选择是将查询与实际大小的数据集进行比较,看看是否存在相当大的差异。

关于mysql - mysql中多删除和多表删除哪个更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25832571/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com