![](/img/trans.png)
[英]How can I store a huge amount of content from multidiemsional array into mysql database?
[英]How can I create an array from a huge amount of data?
我正在从mySQL数据库中选择很多数据:
$sql = "SELECT * FROM data WHERE id = ?";
$q = $pdo->prepare($sql);
$q->execute([$id]);
$array = $q->fetchAll(PDO::FETCH_ASSOC);
var_dump($array);
我想将此数据存储到一个数组中,并在循环后使用此数组。 现在的问题是,我有大量的数据,正在加载和加载阵列,而我的系统不堪重负。 有没有一种方法可以创建包含大量数据且性能更好的阵列?
fetchAll()
函数将整个记录映射到变量。
每次迭代映射一行会更快
$q->execute([$id]);
$i = 0;
while ($row = $q->fetch()) {
// do something with $row
$i++;
}
我目前正在处理12,000行并将其编码为JSON数组,我认为这对我来说是最好的。
$sql = mysqli_query($dbconn, "SELECT * FROM data WHERE id = ?");
$rows = array();
while($r = mysqli_fetch_assoc($sql)) {
$rows[] = $r;
}
然后回显(或者在我的情况下回显json_encode)。
要考虑的主要事项是:
不建议/建议每次循环500k条记录。 它肯定会影响速度/性能。
我建议以下选择:
PS:您可以考虑使用CRON处理数据并根据需要更新排序顺序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.