Apa yang Anda minta tidak sering dilakukan, seperti yang biasanya Anda gunakan update()
untuk mengatur banyak record agar memiliki nilai yang sama atau menetapkan satu record untuk memiliki banyak nilai yang berbeda.
Salah satu cara mengatasinya adalah menggabungkan pembaruan, jadi menggunakan array Anda, dapatkan semua id di mana tahun 2011 lalu jalankan ini:
$where = array();
// This where should contain all the ids that need the year set to 2011
// E.g.
$where[] = array("id" => 3);
$db->update("table_name", array("year" => 2011), $where);
Melakukan ini akan mengurangi jumlah kueri dengan asumsi Anda memiliki banyak baris dengan tahun yang sama. Dokumentasi untuk ini di sini .
Atau Anda dapat menggunakan metode seperti ini
Edit setelah tanggapan OP
Sifat masalahnya berarti tidak dapat diselesaikan secara efisien.
Anda meminta cara memperbarui 3.700 baris data dengan kumpulan data yang sangat berbeda. Jika kumpulan data berbeda maka tidak ada pola yang dapat Anda eksploitasi untuk membuat ini efisien. Menemukan pola, seperti baris dengan tahun yang sama, dan menggunakannya untuk keuntungan Anda akan meningkatkan kecepatan kueri tetapi akan memerlukan beberapa keterlibatan otak dalam bentuk penghancuran array seperti yang dicatat oleh regilero.