› 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 · 6410 views
    This topic created in 4374 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   ·   Privacy   ·   Solana   ·   2592 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:00 · PVG 18:00 · LAX 03:00 · JFK 06:00
    ♥ Do have faith in what you're doing.