从mysql

时间:2019-01-21 11:19:14

标签: php yield

我有一个mysql表,其中包含约900k条记录。当我尝试使用PHP-> Mysqli访问所有记录时,程序出现内存耗尽问题。尽管我增加了内存限制,但仍然遇到相同的问题。

解决方案之一是yield语句。

这是我的尝试。

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT * from push_notification";
$result = (yield $conn->query($sql));
while(yield $result->valid()){
        $result->current();
        $result->next();
}

以上代码未执行。触发错误。

此执行不用于显示,而是用于处理每个记录或特定记录。因此,我可能不得不遍历表中存在的所有记录。

即使PDO / Mysqli抛出与内存耗尽相同的错误。

任何主体都使用了yield和Mysql数据处理,这将是一个很大的帮助。

0 个答案:

没有答案