1

自動インクリメントされた整数の主キーを持つMySQLテーブルがあります。プログラムのメモリにある整数の配列に基づいて、テーブルから一連の行を取得したいと思います。配列の範囲は、少数から約1000アイテムです。

行を取得するための最も効率的なクエリ構文は何ですか?

私はいくつか考えることができます:

  1. "SELECT * FROM thetable WHERE id IN(1、2、3、4、5)"(これが私が今していることです)
  2. "SELECT * FROM thetable where id = 1 OR id = 2 OR id = 3"
  3. "SELECT * FROM thetable WHERE id=1"の形式の複数のクエリ。おそらくクエリキャッシュに最も適していますが、クエリの解析が多いためコストがかかります。
  4. 「SELECT*FROM thetable WHERE id = 1 UNION SELECT * FROM thetable WHERE id =2...」のようなユニオンMySQLが各クエリの結果をキャッシュするかどうかはわかりません。これは、最も冗長な形式でもあります。

MySQL 5.6以降でNoSQLインターフェースを使用するのがこれを行う最も効率的な方法だと思いますが、私はまだMySQL5.6に対応していません。

4

1 に答える 1

3

No.1 が最も速く、保守が容易です。だから、あなたはすでにあなたがなりたい場所にいます。

于 2012-06-19T01:43:37.067 に答える