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 接口将是最有效的方法,但我还没有达到 MySQL 5.6。

4

1 回答 1

3

No.1 是最快且最容易维护的。所以你已经到了你想去的地方。

于 2012-06-19T01:43:37.067 回答