从MySQL中选择20万行,性能问题


Selecting 200k rows from MySQL, Performance issue

我只是陷入了这个问题,我需要选择大量的行,对其执行某些操作,当然我不需要它们,我可以承受1-2秒的延迟,我通过以下方法处理PHP循环。

$last_id=0;
for($i=1;$i<20;$i++)
{
Mysql_query...... WHERE id>last_id;
$last_id=$TablerowID;
}

我在这个表中有100万行,但我觉得mysql不以正确的id递增形式返回数据不是一个好方法,它有时也会返回1&留下50跳到100,然后在100之后返回50等,这将跳过一些行或在该函数中产生其他问题。

我不想按id订购,因为它也会大大降低性能;我不能在性能上妥协。

请你提出建议?

最后执行订单。因此,如果你每次检索100行的垃圾,那么性能下降幅度将是最小的。

您可以将查询调整为以下内容:

$last_id=0;
for($i=1;$i<20;$i++)
{
Mysql_query...... WHERE id>last_id and id<(last_id+junk_size) order by id;
$last_id=$TablerowID;
}

通过改变垃圾大小,你可以根据经验找到哪一个是最理想的。