[英]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.