Mysql 批量数据删除的效率问题

2014-10-16 10:55:07 +08:00
 iyaozhen
问题简化:
表A,表B(不在一个服务器,字段不完全相同)里面有相同字段user_id,两个表同时记录着user的相关操作。现需要把两个表的有用相关操作保留下来,没用的删除。并集,及表A中符合要求的user_id在表B中信息也要保留下来。

我目前的做法:
表A需要的user_id和表B需要的user_id在内存中做并集,形成一个list。然后分别去两个表DELETE FROM table WHERE user_id NOT IN (list)。不过每个表都是几百万行,效率太低了。有没有什么更好的方法。

限制条件:
由于权限限制无法删除/新建表。
两个表中的有用信息还要存到本地的库里面。还要select、insert操作。
不止两个表,大概5-7个,数据都是几百万行。
5618 次点击
所在节点    MySQL
3 条回复
yangqi
2014-10-16 11:10:52 +08:00
最快的就是新建表了吧...不能新建只能delete from没什么好办法啊...
iyaozhen
2014-10-16 14:24:34 +08:00
@yangqi 哎,线上数据库有限制呀。能删数据都很不错了,哪能建新表呀。
20150517
2014-10-16 17:32:10 +08:00
本地新建表,import上去,权限可以和dba谈啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/139246

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX