我有一个80000行数据库,结果编号在130000000和168000000之间,结果使用字段pid配对。我需要将行的状态从“ G”更改为“ X”,结果对之间的差值为4300000。
我想出了下面的查询,该查询可以运行,但是速度很慢,可以提高速度吗?
UPDATE table1 SET status = 'X'
WHERE id IN (
SELECT id FROM (
SELECT a.id AS id FROM table1 a, table1 b
WHERE a.result = b.result + 4300000
AND a.pid = b.pid
AND a.result between 130000000 and 168000000
AND a.status = 'G'
) AS c
);
Run Code Online (Sandbox Code Playgroud)
索引是:
table1 0 PRIMARY 1 id A 80233 NULL NULL BTREE
table1 1 id 1 id A 80233 NULL NULL BTREE
table1 1 id 2 result A 80233 NULL …Run Code Online (Sandbox Code Playgroud)