我在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秒。关于我如何解决这个速度问题的任何提示?
答案 0 :(得分:0)
首先,您可以使用EXPLAIN查看优化器正在执行的操作。你必须将代码重建为SELECT:
EXPLAIN SELECT * FROM users INNER JOIN payments ON users.Email=payments.Email WHERE payments.Type='success'
最有可能的是,连接没有可以使用的索引。是" ID"有指数?也许你可以将它添加到Join子句中?或者可能为" Email"添加索引。两个表上的列?