为什么这个循环中的SQL查询变得越来越慢?

时间:2016-11-24 21:10:41

标签: php mysql performance loops

我有以下运行此SQL查询的PHP代码(在大约一百万行的表上):

while (true) {
    $sql = '
        SELECT question_id, owner_id, has_answer, has_read
        FROM questions
        WHERE owner_id > 0 AND question_id > :question_id AND has_answer = 1
        ORDER BY question_id
        LIMIT 10000
    ';
    $questions = preparedQuery($sql, array('question_id' => $lastId));
    if (!count($questions)) break;

    $lastId = $questions[count($questions) - 1]['question_id'];

    // More stuff...
}

最初,对于前4次迭代,它相对较快,但从第5次开始,它突然变得非常慢。它从第一个循环中的几秒钟到第五个循环中的几分钟。我不明白的是,查询都是相同的,所以我希望它们以相同的速度运行。

知道可能导致这种情况的原因是什么?有什么我可以做的来优化这个吗?

0 个答案:

没有答案