gpt4 book ai didi

mysql - 多表 DELETE 语句是不好的做法吗?为什么?

转载 作者:行者123 更新时间:2023-11-29 13:48:30 25 4
gpt4 key购买 nike

我正在使用使用 MyISAM 存储引擎的 MySQL 数据库。我使用多表删除语法。到目前为止,我只在需要一次从多个子表中删除时使用它。但我正在考虑使用它从一个查询中的多个子表和父表中删除。

最近,我在 SO 和其他论坛上看到了一些帖子,这些帖子说同时从多个表中删除是一个坏主意。但没有一张海报解释为什么不推荐这样做。

我知道涉及具有外键约束的 InnoDB 表的多表删除可能会出现问题,因为您无法控制表的处理顺序。显然,这在我的情况下不是问题。

我原以为多表删除会从所有表中删除或不删除任何表。但我无法找到这是否属实的信息。如果它能部分成功,就会损坏数据。

同时从多个 MyISAM 表中删除是一个坏主意吗?这总是一个坏主意还是只有在涉及 parent / child 关系时才这样做?请解释原因。

郑重声明,目前该项目无法选择更改为 InnoDB。

最佳答案

我可以看到的一个可能的问题是,如果出现故障(例如服务器故障、断电等),并且您已经在相关子记录之前删除了父记录(从父表中),那么你有所谓的orphan record(s)这意味着相关的子记录/表不能再与母记录/表相关。尽管如果您在父表/记录之前先删除子表/记录,则可以克服这个问题。

另一个是performance issueMyISAM使用表级锁定,因此删除多条记录(从多个表中)比从少数来源删除更有可能降低访问时间性能。

关于mysql - 多表 DELETE 语句是不好的做法吗?为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17078627/

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