繁体   English   中英

从具有百万条目的mysql数据库中获取少量记录

[英]Fetching few records from mysql database having million entries

我有一个有百万行的表。 它将用户ID作为主键。 我有一个包含500个用户ID的数组。

我想从表中选择用户ID在数组中的所有记录。 我知道一种方法是将数组更改为字符串并通过传递字符串来运行IN查询。

但我认为这不是有效的方法。 亲切地建议其他方式。

我假设你的id是整数。 也许你从其他一些来源获得这个ID列表,以便在mysql端加入不是所需的解决方案。 如果是,则查找500 Ids列表中的最大和最小ID。 你可以在php端做到这一点。 当你有max和min值时,用一个where clause查询mysql db

select ...
  from table_name
  where min_id <= id and id <= max_id

id是主键,因此优点是它已经被索引。

我过去做过这个,我不确定我的方法是最有效的。

我用ids创建一个字符串:其中id = a或id = b或id = c ...

然后我在它前面添加select语句,然后做一个fetchall。

我的猜测是你从另一个表中获取这些用户ID,并将它们存储在一个数组中。 如果这是正确的,那么您应该更改获取这些用户ID的查询,以便它使用连接。

联接将帮助你,因为IN()不是一个好的编程实践。 您可以在这里了解加入http//mysqljoin.com/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM