自動インクリメントされた整数の主キーを持つMySQLテーブルがあります。プログラムのメモリにある整数の配列に基づいて、テーブルから一連の行を取得したいと思います。配列の範囲は、少数から約1000アイテムです。
行を取得するための最も効率的なクエリ構文は何ですか?
私はいくつか考えることができます:
- "SELECT * FROM thetable WHERE id IN(1、2、3、4、5)"(これが私が今していることです)
- "SELECT * FROM thetable where id = 1 OR id = 2 OR id = 3"
- "SELECT * FROM thetable WHERE id=1"の形式の複数のクエリ。おそらくクエリキャッシュに最も適していますが、クエリの解析が多いためコストがかかります。
- 「SELECT*FROM thetable WHERE id = 1 UNION SELECT * FROM thetable WHERE id =2...」のようなユニオンMySQLが各クエリの結果をキャッシュするかどうかはわかりません。これは、最も冗長な形式でもあります。
MySQL 5.6以降でNoSQLインターフェースを使用するのがこれを行う最も効率的な方法だと思いますが、私はまだMySQL5.6に対応していません。