如何最有效地为多个用户ID选择与用户ID匹配的行/记录


How to most efficiently select a row/record matching user ID for many user IDs?

在我的数据库中,我有一个表,其中包含具有自己的主id键和用户id键的记录。客户端,在我的javascript中,我有一个数组,里面有很多用户id。对于这个数组中的每个id,我希望在表中搜索并选择与匹配的用户id相关联的记录。我不确定我是否有最好、最有效的方法。

现在,这就是我的想法:

半伪码:

Javascript

for each element (user id) in array: 
     .get( 'script.php', userid_data, function(response){
             // ..do something with the row/record data of that specific user...
           }

因此,对于该数组中的每个用户id,我执行AJAX get()请求,将特定的用户id发送到php脚本,该脚本在整个表中搜索与用户id匹配的记录/行。

PHP/MMySQL(script.PHP)

/*..some connection code..*/
/*.. some receive code..*/
/* query code: */
 "SELECT * FROM `recordTable` WHERE `userid` =" .var_containing_userid.";"
/*...some array to json encoding..*/
/* return attribute data */         

然而,尽管这是我唯一能想到的方法,但对我来说,这似乎不是目前最有效的方法

这是因为,从理论上讲,用户id的数组和记录的数量在未来都可能是无限多的(或者只是很多)。如果这个表中有数百个ID和不断增长的记录,我不确定这会以多快的速度运行。

有更好/更快的方法吗?在这种方法的执行变得明显缓慢之前,记录表可以增长到多大?我正在使用PhpMyAdmin。

尝试此查询:

   SELECT * FROM recordTable WHERE userid IN $user_id_array

$user_id_array是包含user_id的数组。

你可以试试这个

SELECT * FROM `users` WHERE userid IN ($ids)

其中CCD_ 1是以逗号分隔的ID字符串。