MySQL成本:Cascade或MyISAM上的InnoDB分开删除

时间:2011-07-10 03:03:26

标签: mysql innodb myisam

我很好奇哪个服务器使用的资源更具成本效益:使用MyISAM引擎遍历多个表或多个删除语句的On Cascade Delete

2 个答案:

答案 0 :(得分:2)

On Cascade Delete有多重优势:

  • 它可以使用事务,因此如果一个删除失败,所有将失败并且数据将保持一致
  • InnoDB使用行级锁。要从MyISAM中删除记录,必须锁定整个表。如果有很多并发查询,InnoDB会更快。
  • 正如@Itay Moav所说,在级联删除中,您将只执行一次查询,而多次删除 - 多次查询。

答案 1 :(得分:1)

第二个选项还需要系统回调并对mysql客户端和mysql服务器进行通话,而第一个选项只需要在一次调用中执行。如果你把它全部放在一个交易中,也更容易解决InnoDB。