1

次の表記のうち、どちらが優れていますか?

SELECT id,name,data FROM table WHERE id = X

また

SELECT id,name,data FROM table WHERE id = X LIMIT 1

「LIMIT」は付けるべきではないと思います。

ありがとう!

4

2 に答える 2

2

一意の制約がある場合id、それらはまったく同じになります。

一意の制約がない場合 (と呼ばれる列で非常に驚くべきことがわかりますid)、どちらが優れているかは、何をしたいかによって異なります。

  • 条件に一致するすべての行を検索する場合は、使用しないでくださいLIMIT
  • 条件に一致する任意の行を検索する場合 (どの行でも構いません)、 を使用しますLIMIT 1
于 2012-06-02T05:53:50.023 に答える
1

クエリを高速化するため、1 つのレコードをフェッチする場合でも、常に select ステートメントで LIMIT を使用してください。だから使用:

SELECT id,name,data FROM table WHERE id = X LIMIT 1

例:テーブルに1000個のレコードがある場合、使用する場合よりも

SELECT id,name,data FROM table WHERE id = X

そのIDが見つかったとしても、1000レコードをトラバースするよりもしかし、このようにLIMITを使用すると

SELECT id,name,data FROM table WHERE id = X LIMIT 1

最初のレコードが見つかったときに実行を停止するよりも。

于 2012-06-02T06:01:12.037 に答える