Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Meraih 190k baris dari MySQL menggunakan PHP, halaman kosong? Memori atau penyangga?

Mengesampingkan Kohana, karena saya belum pernah menggunakannya, apa yang Anda lakukan saat ini pada dasarnya adalah ini:

$result = mysql_query(...);
$data   = array();
while ($row = mysql_fetch_assoc($result)) {
    $data[] = $row;
}

Yaitu. Anda mendapatkan semua data dari MySQL dengan mysql_fetch_assoc dan simpan semuanya di memori PHP dengan memasukkannya ke $data . Itu berarti PHP perlu memiliki cukup memori untuk menyimpan semua data sekaligus, padahal tidak.

Yang ingin Anda lakukan adalah mengambil satu baris hasil dari MySQL, melakukan sesuatu dengannya, lalu melanjutkan ke baris berikutnya tanpa menyimpan semuanya dalam memori sekaligus:

$result = mysql_query(...);
while ($row = mysql_fetch_assoc($result)) {
    echo $row['foo'];
}

Dan tidak, tolong jangan gunakan mysql_ API yang sudah usang, itu hanya contoh common denominator terbesar di sini. Selain itu, pasti ada cara yang lebih baik untuk melakukan apa pun yang ingin Anda lakukan daripada mencoba mengambil dan menghasilkan 190.000 baris sekaligus.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. hapus baris duplikat berdasarkan nilai satu kolom

  2. Bantuan PHP dan SQL Hashing:Apa yang saya lakukan salah?

  3. MySQL/PDO memotong data

  4. Pernyataan yang Disiapkan MySQL - Cara Melakukan Loop Through

  5. Stempel Waktu &Tanggal di baris tabel MySQL