2011-10-17 9 views
5

クエリ後にLIMIT 1が追加されますか?LIMIT 1のパフォーマンスは向上していますか?

...(WHERE句に一致する可能性のあるエントリが1つしかない場合)

SELECT `x` 
FROM `unicorns` 
WHERE `id` = 123 
LIMIT 1 

...同じですが、今ではDELETEです:

DELETE FROM `unicorns` 
WHERE `id` = 123 
LIMIT 1 

...とUPDATE

UPDATE `unicorns` 
SET `rainbows` = `rainbows` + 1 
WHERE `id` = 123 
LIMIT 1 

P.S.列idは主キーですので、ユニークです。

アドバイスをいただきありがとうございます。それが依存

+1

この場合、制限は無効です。また、列名を引用符で囲む必要もありません。 – DwB

+4

私は個人的には明瞭さとハビットにとってまだ良いと感じています – Will03uk

答えて

4

DELETE FROM `unicorns` WHERE `id` = 123 LIMIT 1 

はidが主キーの場合は無意味です、あなたが列にインデックスかどうかを持っていますが、

DELETE FROM `unicorns` WHERE `noindexoclumn` = 123 LIMIT 1 

はuが

0

それが後押しう後押しもパフォーマンス与えますDBがクエリの条件を満たす行のフェッチのみを開始するという点で、パフォーマンスが向上します。しかし、アップデートでは、何がポイントですか?特にプライマリキーで完全一致を実行している場合は、最初に1行だけ一致するので、「テーブル内のこの1行を更新する」という意味はありませんが、最も"。

関連する問題