我有一段时间关于MySQL查询的问题。我设计了一个系统,要求当用户删除帖子时,还应删除其他表中的信息。问题归结为:我最好使用一种方法从一个查询中的多个表中删除所有行,或者执行多个查询以执行相同操作的资源更加密集?我的问题的原因之一是这篇文章:Mysql - delete from multiple tables with one query。从响应中可以看出,经验丰富的编码员认为没有必要在一个查询中执行操作。实际上,从这篇文章中可以看出,在一个查询中从多个表中删除多行的方法是资源密集型的:How to delete from multiple tables in MySQL?。我的想法一直是,如果我可以在一个查询中完成所有这些操作,那么资源密集程度就会降低。这是我对CRUD的一般方法 - 尽管我现在怀疑这种方法的相关性如何。提前感谢您的帮助!
答案 0 :(得分:1)
为什么不将foreign keys与ON DELETE CASCADE一起使用?然后MySQL本身将自动删除所有相关的行。
如果您需要手动删除它,我会在transaction中使用多个DELETE语句。