0

次のようなクエリがあります。

UPDATE table1 SET status = 'ANSWERED' WHERE table1.number IN (select table2.number from table2)

既に存在するstatus場合は、ANSWEREDに更新する必要があります。table1.numbertable2.number

それは永遠にかかり、まだぶら下がっています..

テーブルではtable1、300,000 行。

table2テーブルでは、24,000 行。

table1.numbertable2.numberは一意の番号です。

パフォーマンスを向上させる方法は?

4

1 に答える 1

3

table1.number フィールドと table2.number フィールドにインデックスを作成し、次のクエリを使用します。

UPDATE table1 
       INNER JOIN table2 
               ON table1.number = table2.number 
SET    table1.status = 'ANSWERED' 
于 2012-06-11T13:28:45.097 に答える