İçeriğe geç

Döngü İçinde Yazma (ARCH7052)

Anahtar php.orm.write-inside-loop · Önem error · Kategori orm

Döngü içinde her satır için ayrı save()/flush çağırmak, öğe başına bir veritabanı gidiş-dönüşü demektir. Bu, yazmaları tek toplu işlemde gruplamak yerine ağ ve transaction yükünü çoğaltır.

<?php
foreach ($rows as $row) {
$user = new User();
$user->email = $row['email'];
$user->save(); // her yinelemede DB gidiş-dönüşü
}
<?php
$batch = array_map(fn($row) => [
'email' => $row['email'],
], $rows);
User::insert($batch); // tek toplu yazma

Satırları toplayıp döngü dışında tek bir toplu insert/update ile kaydedin.