web-dev-qa-db-ja.com

LIMIT付きまたはLIMITなしの行の削除

削除するとき、LIMITを使用するかどうか(MySQL INNODBテーブル)

  • 各顧客には固有のハッシュがあります。
  • 各顧客は、1つのテーブルに1つ以上のレコードを持つことができます。

顧客が最大100レコードまで持つことができることがわかっていて、DELETEクエリにLIMIT 100がある場合、100レコードが削除されると、テーブルの最後に行かずにクエリが終了すると想定します。

ただし、顧客のレコード数が50で、DELETEクエリの制限が100の場合、存在しない51番目のレコードを追跡するのに費やすため、テーブルの終わりが見つかるまで削除が続行されます。

したがって... LIMITを使用しない場合、MySQL INNODBは、50レコードを削除した後、さらに続行する必要がないことを事前に認識しますか?

答えは、パフォーマンスの問題を作成または排除することができます...

3
fiprojects

制限はちょうど100で役立つので、オーバーヘッドの価値はおそらくありません。

ハッシュにインデックスを付ける場合、停止すること(および開始する場所)を知っている必要があります。

3
paparazzo