我正在运行下面的requery来清理一个表,但我的状态是“发送数据”几个小时。这是一个MySQL DB。
DELETE TABLE_INIT FROM DEM_annonces_urlproduit TABLE_INIT
LEFT OUTER JOIN (
SELECT MIN(id_url) as id, id_ann
FROM DEM_annonces_urlproduit
GROUP BY id_ann
) AS TABLE_1
ON TABLE_INIT.id_url = TABLE_1.id
WHERE TABLE_1.id IS NULL
该表具有以下结构
id_url | id_ann | url | eaa
我的主键是id_anl,并在id_ann上编制了索引表。
我有大量相同的数据要删除,并将id_ann设置为修复我的问题的主键。表中有13M行。
我需要在几个时间内完成吗?清理餐桌的最佳方法是什么?
由于
答案 0 :(得分:0)
尝试优化您的陈述:
DELETE FROM DEM_annonces_urlproduit
WHERE id NOT IN (
SELECT MIN(id_url)
FROM DEM_annonces_urlproduit
GROUP BY id_ann
)
当它没有变得更好时,循环选择
SELECT MIN(id_url) id, id_ann
FROM DEM_annonces_urlproduit
GROUP BY id_ann
并仅在群组内删除
DELETE FROM DEM_annonces_urlproduit
WHERE id <> current.id
AND id_ann = current.id_ann