我可以加快查询速度以使其更快吗?现在需要51秒。

UPDATE tbl_user_tmp tut
  INNER JOIN tbl_user_tmp tut1 ON tut.name = tut1.name
  SET tut.image = '1', tut1.image='1'
  WHERE tut.image = 0 AND tut1.image=1 and tut.user = 'user' and tut1.user = 'user'


我试图查找具有相同名称的整体并更新图像,如果一个名称的图像等于0,而另一个名称等于1。

我无法在此表上放置索引,因为该索引已由我的网站上的用户更新和插入。据我了解,添加索引将使这些查询变慢。我需要它快。这确实是我所引起的唯一查询。因此希望找到一种无需索引的方法。

最佳答案

这是查询:

UPDATE tbl_user_tmp tut INNER JOIN
       tbl_user_tmp tut1
       ON tut.name = tut1.name
    SET tut.image = 1,
        tut1.image = 1
  WHERE tut.image = 0 AND tut1.image = 1 and tut.user = 'user' and tut1.user = 'user';


索引将有助于此查询。我会建议:

create index idx_tbl_user_tmp_1 on tbl_user_tmp(image, user, name)
create index idx_tbl_user_tmp_2 on tbl_user_tmp(name, image, user)

07-28 09:57