我是mySQL和PHP的新手,我遇到了性能问题。 我有一个具有不同唯一ID的数据库,我想从id(从数组中)中提取超过5000的几行。我到目前为止提出的最佳解决方案是使用:
SELECT * FROM `table` WHERE id IN ($idArray);
有更有效的方法吗? ' id'在'表'是一个独特的字符串。
答案 0 :(得分:0)
我看到IN
列表中的70,000个数字“缓慢”。
部分问题是索引。您的table
需要INDEX(id)
(或者,更好的是PRIMARY KEY(id)
)。
部分问题是缓存。如果table
足够小以适应buffer_pool,并且该缓存是温暖的,那么它更像是从铲子上掉下来的温暖潮湿的东西。
但是......如果您的“数组”在表格中已经,那么只需JOIN
到该表。这可能会更快。 OTOH,为此目的建造一张桌子的速度可能会慢一些。