Php 在SQL数据库中搜索单个
我是mySQL和PHP新手,我陷入了性能问题。 我有一个具有不同唯一id的数据库,我想从5000多行中按id(从一个数组)提取几行。到目前为止,我提出的最佳解决方案是: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)) 问题的一部分是缓存。如果表足够小,可以放入缓冲池,并
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个用户中,可能有几百个。这仍然有效吗?如果我还没有偏离主题,你认为有更好的方法来做我想做的事情吗?非常感谢。