我有一个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数据处理,这将是一个很大的帮助。