PDO::fetchAll vs. PDO::fetch in Loop Performance Comparison
Apabila bekerja dengan set hasil pangkalan data, pembangun selalunya mempunyai pilihan antara menggunakan PDO::fetchAll() atau PDO::fetch() dalam gelung. Menentukan pendekatan mana yang lebih sesuai bergantung pada prestasi tertentu dan keperluan memori.
PDO::fetchAll
PDO::fetchAll() mengambil semua baris daripada set hasil dan menyimpannya dalam tatasusunan. Ia selalunya lebih pantas untuk set hasil yang besar kerana ia melaksanakan semua operasi dalam satu panggilan pangkalan data. Walau bagaimanapun, ia juga mempunyai overhed memori yang ketara kerana ia memuatkan keseluruhan set data ke dalam memori sekali gus.
PDO::fetch
PDO::fetch() secara berulang mengambil baris satu demi satu. Pendekatan ini biasanya lebih perlahan untuk set hasil yang besar kerana ia memerlukan berbilang panggilan pangkalan data. Walau bagaimanapun, ia menggunakan lebih sedikit memori kerana ia memproses baris secara individu.
Tanda Aras Prestasi
Tanda aras prestasi telah dijalankan dengan jadual yang mengandungi 200,000 rekod rawak. Keputusan berikut telah diperolehi:
Tanda Aras Penggunaan Memori
Selain daripada penanda aras prestasi, penanda aras penggunaan memori juga telah dijalankan. Keputusan menunjukkan bahawa fetchAll memerlukan lebih banyak memori:Memilih Kaedah yang Betul
Pilihan antara PDO::fetchAll() dan PDO::fetch() akhirnya bergantung pada keperluan khusus permohonan itu. Jika kelajuan adalah yang paling penting, fetchAll disyorkan, dengan syarat memori yang mencukupi tersedia. Sebagai alternatif, ambil harus digunakan untuk set hasil yang memerlukan pemuliharaan ingatan.Atas ialah kandungan terperinci Manakah Lebih Cepat dan Lebih Cekap Memori: PDO::fetchAll() atau PDO::fetch() dalam Gelung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!