MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
iyaozhen
V2EX  ›  MySQL

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

  •  
  •   iyaozhen ·
    iyaozhen · Oct 16, 2014 · 6288 views
    This topic created in 4304 days ago, the information mentioned may be changed or developed.
    问题简化:
    表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个,数据都是几百万行。
    3 replies    2014-10-16 17:32:10 +08:00
    yangqi
        1
    yangqi  
       Oct 16, 2014
    最快的就是新建表了吧...不能新建只能delete from没什么好办法啊...
    iyaozhen
        2
    iyaozhen  
    OP
       Oct 16, 2014
    @yangqi 哎,线上数据库有限制呀。能删数据都很不错了,哪能建新表呀。
    20150517
        3
    20150517  
       Oct 16, 2014
    本地新建表,import上去,权限可以和dba谈啊
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5300 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 51ms · UTC 08:44 · PVG 16:44 · LAX 01:44 · JFK 04:44
    ♥ Do have faith in what you're doing.