我只是破坏了这个问题,我需要选择好的行数,对它执行某些操作,当然我不需要它们,我可以承受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&amp;将50跳转到100然后在100之后返回50等,这将跳过某些行或在此函数中创建其他问题。
我不希望按ID排序,因为它的性能也在不断降低。我不能在性能上妥协。
请你的建议?
答案 0 :(得分:1)
订单依据最后执行。因此,如果你每次检索说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;
}
通过更改junk_size,您可以根据经验找到最佳的。