在mysql中排除很多用户

时间:2010-12-02 12:26:40

标签: mysql long-integer

非常感谢您的帮助。 我必须排除用户,问题是需要花费太长时间(约5小时或更长时间) 在我的数据库中,我有大约800,000个用户,其中我排除了大约580000个用户(我得到了220000个不重复的用户)。

  1. 使这成为第一种方法:
  2. SELECT iduser FROM userstotal WHERE iduser NOT IN( SELECT iduser FROM users220000)

    (这是我所做的简化示例,但这是个想法) 执行查询大约需要5个小时或更长时间。

    我正在考虑在一组用户中添加一个php脚本,然后排除重复。

    您建议我优化SQL查询或优化方法。

    • 供参考使用MyISAM

1 个答案:

答案 0 :(得分:1)

我会将查询重写为

SELECT   ut.iduser
FROM     userstotal ut
WHERE    NOT EXISTS (
           SELECT  u2.iduser 
           FROM    users220000 u2 
           WHERE   u2.iduser = ut.iduser
         )

并确保iduser表的userstotalindexed

我怀疑用户220000上的索引会有什么不同,但也不会有任何影响。

修改

感谢Ronnis发现失踪条款。