从自引用表中删除

时间:2018-08-22 13:02:28

标签: mysql

我的查询时间太长。

我们要删除在特定日期之前创建的订单及其头寸。看来,ERP制造商有时会从ISAM切换到MySQL,并一直使用位置链接。

以下字段是相关的:

`Order`.`Date`, `Order`.`StartPositionsID`, `Position`.`Id`, `Position`.`ChainGuid`

这是我的查询

DELETE `Position`
FROM   `Order`
LEFT JOIN
    (`Position` AS `Position_2`
    INNER JOIN `Position`
        ON `Position_2`.`ChainGuid` = `Position`.`ChainGuid`)
    ON `Order`.`StartPositionsID` = `Position_2`.`ID`
WHERE `Order`.`Date` < Date('2014-10-01');

Order具有ID中的一个Position,并且属于该Position的每个Order共享相同的ChainGuid

是否有更理想的删除不需要的职位的方法?

有〜100.000个订单和〜1.700.000个头寸,根据Handler_read_rnd_next,sql server每秒大约处理140.000行。我是否认为正确,大约需要15天才能完成?

0 个答案:

没有答案