猿问

swoole异步mysql获取大数据时直接退出没返回数据

  • 最简单地使用swoole的异步mysql客户端获取10万数据,在一个环境下的php7下花费一段长时间后能执行query的回调方法输出数据,但是在另外一个环境的php5.4下却什么报错都没有直接退出了,没有执行到query的回调的函数。

我猜测是PHP的配置不同影响的,1万数据是没问题,但是不知道应该怎么修改配置

$db->connect($server, function ($db, $r) {
    $dbPreix = "m_";    if ($r === false) {
        var_dump($db->connect_errno, $db->connect_error);        die;
    }    //获取队列数据
    $sql = 'SELECT queue_id,group_id,content,data,keyword FROM '.$dbPreix.'_queue '.            
        'WHERE 1=1 limit 100000';
    $db->query($sql, function(swoole_mysql $db, $r) {
        print_r($r);
    });


摇曳的蔷薇
浏览 1294回答 2
2回答

HUWWW

你这应该是内存溢出导致的。内存溢出的配置是php.ini,可能配置不一样导致。解决方法:不要一次性查询,分批次查询在回调(做法参考分页原理)
随时随地看视频慕课网APP
我要回答