PHP MySQL游标?或查询而不提取

时间:2015-03-17 10:45:40

标签: php python mysql

我正在运行一些在运行时需要0,0053秒但在获取时大约需要12秒的查询...这会在获取大约100,000行时导致PHP超时。

我想知道是否有一种方法可以加快使用光标或其他东西的提取速度,比如在Python中你可以在没有取出每一行的情况下进行循环...因为一切都在破坏PHP中的超时

1 个答案:

答案 0 :(得分:0)

计划A:SELECT COUNT(*)...以查看它是100K还是300K或其他什么。将其插入经验公式(如$seconds = 10 + $count / 2000)并将其插入set_time_limit($seconds)。 (这假设你没有超时COUNT(*)!)

B计划:" Chunk"数据,所以你不是要一次性获取所有数据。 (请记住,PHP有一个默认的内存限制,你可能有可能超过。)分块不应该使用OFFSETLIMIT,而是#34;记住它停止的位置&#34 ;;否则会越来越慢,最终超时。关于分块的更多细节在http://mysql.rjweb.org/doc.php/deletebig