MySQL UPDATE JOIN语句速度问题

时间:2014-09-02 15:25:52

标签: php mysql join sql-update

我在MySQL数据库中有两个表,我似乎无法高效工作。第一个是支付表,大约有25,000行和以下字段。

ID, Email, Type

第二个是具有2,000行及以下内容的用户表:

ID, Email, AccessDate

使用MySQL JOIN语句我把它放在一起,它完美地运行:

  

UPDATE用户INNER JOIN付款ON users.Email = payments.Email SET   AccessDate = NOW()WHERE payments.Type =' success'

问题是,在本地计算机上执行查询大约需要95秒。关于我如何解决这个速度问题的任何提示?

1 个答案:

答案 0 :(得分:0)

首先,您可以使用EXPLAIN查看优化器正在执行的操作。你必须将代码重建为SELECT:

EXPLAIN SELECT * FROM users INNER JOIN payments ON users.Email=payments.Email WHERE payments.Type='success'

最有可能的是,连接没有可以使用的索引。是" ID"有指数?也许你可以将它添加到Join子句中?或者可能为" Email"添加索引。两个表上的列?