3

MySQLのUPDATEで非常に悪いパフォーマンスが発生しています。私の更新ステートメントは、次のように非常に基本的です。

UPDATE `tbl_name` 
   SET `field1` = 'value1', `field2` = 'value2' .. `fieldN` = 'valueN' 
WHERE `tbl_name`.`id` = 123;

値は少なく(15)、すべてのTEXTの種類とWHERE条件はidを使用する1つだけです。値はJSON文字列です(ただし、これはMySQLに煩わされることはなく、単なるプレーンテキストとして表示されるはずです)。

「tbl_name」にはレコードがほとんどありません(約4k)。

問題は、このUPDATEステートメントを実行すると8秒の実行時間が得られたことです(MySQLの低速クエリログから取得)。

私はMySQLをEC2HighCPU Medium istanceで単独で実行していますが、これらのパフォーマンスが「正常」であることはかなり不可能だと思います。はるかに高いパフォーマンスが期待できます。

問題を調査するアイデアはありますか?

**更新**迅速な回答をありがとうございます。テーブルはInnoDBで、idはPRIMARY、UNIQUEです。値はTEXTです(varcharではありません)

** UPDATE bis **いいえ、idは整数で、他のすべてのフィールドはTEXTです

4

1 に答える 1

1

MySQL はバージョン 5.6.3 より前のステートメントをサポートしていないためEXPLAIN UPDATE、このクエリについてはまったくわかりません。ステートメントを試してUSE INDEXください...

サーバーで同じものを起動しました。15 個TEXTのフィールドと 4096 行の非常に任意のテキストで、すべて問題ありませんでした。と の両方USE INDEX(PRIMARY)IGNORE INDEX(PRIMARY)ステートメントで問題ありませんでした。

したがって、クエリではなく、SQLサーバー、インストールパッケージ、またはその他に問題があると思います...

于 2012-10-09T18:54:47.750 に答える