Php 在SQL数据库中搜索单个

Php 在SQL数据库中搜索单个,php,mysql,performance,Php,Mysql,Performance,我是mySQL和PHP新手,我陷入了性能问题。 我有一个具有不同唯一id的数据库,我想从5000多行中按id(从一个数组)提取几行。到目前为止,我提出的最佳解决方案是: SELECT * FROM `table` WHERE id IN ($idArray); 有没有更有效的方法?“table”中的“id”是一个唯一的字符串。我在列表中看到70000个数字是“迟缓”的 问题的一部分是索引。您的表需要索引(id)(或者更好的是,主键(id)) 问题的一部分是缓存。如果表足够小,可以放入缓冲池,并

我是mySQL和PHP新手,我陷入了性能问题。 我有一个具有不同唯一id的数据库,我想从5000多行中按id(从一个数组)提取几行。到目前为止,我提出的最佳解决方案是:

SELECT * FROM `table` WHERE id IN ($idArray);

有没有更有效的方法?“table”中的“id”是一个唯一的字符串。

我在
列表中看到70000个数字是“迟缓”的

问题的一部分是索引。您的
需要
索引(id)
(或者更好的是,
主键(id)

问题的一部分是缓存。如果
足够小,可以放入缓冲池,并且缓存是温暖的,那么它更像是从铲子上掉落的温暖潮湿的东西


但是。。。如果您的“数组”已经在一个表中,那么只需
加入该表即可。这可能会更快。OTOH,仅仅为了这个目的而构建一个表可能会慢一些。

我在
列表中看到70000个数字是“缓慢的”

问题的一部分是索引。您的
需要
索引(id)
(或者更好的是,
主键(id)

问题的一部分是缓存。如果
足够小,可以放入缓冲池,并且缓存是温暖的,那么它更像是从铲子上掉落的温暖潮湿的东西


但是。。。如果您的“数组”已经在一个表中,那么只需
加入该表即可。这可能会更快。OTOH,仅仅为此目的构建一个表可能会慢一些。

为什么ID是字符串?如果ID是唯一的——比如说,它们在数据库中有唯一的索引(
PRIMARY
unique
),那么,仅在5000条记录上,这应该很快就完成了!这是最有效的,只要确保你在
id
字段上有一个索引。像这样向查询传递变量会使你容易受到id的攻击,Facebook用户id是大约15个字符的数字字符串。我将数据库用作排行榜,更具体地说,我想提取所有用户朋友(带ID)的分数(每个用户约4列)。在这一点上,我只测试了5000个用户中的10个人,这些用户都是自创的,但实际上,在超过50000个用户中,可能有几百个。这仍然有效吗?如果我还没有偏离主题,你认为有更好的方法来做我想做的事情吗?谢谢。为什么ID是字符串?如果ID是唯一的-比如在数据库中它们有唯一的索引(
PRIMARY
unique
),那么,仅在5000条记录上,这应该很快就完成了!这是最有效的,只要确保你在
id
字段上有一个索引。像这样向查询传递变量会使你容易受到id的攻击,Facebook用户id是大约15个字符的数字字符串。我将数据库用作排行榜,更具体地说,我想提取所有用户朋友(带ID)的分数(每个用户约4列)。在这一点上,我只测试了5000个用户中的10个人,这些用户都是自创的,但实际上,在超过50000个用户中,可能有几百个。这仍然有效吗?如果我还没有偏离主题,你认为有更好的方法来做我想做的事情吗?非常感谢。