Laravel Tips
- 2022年8月26日
- 技術情報
一度に1つのレコードをseedingすると、DBが遅くなる可能性があります。より良い方法は、PHPでレコードを大量に作成し、それをChunkしてシードするで1万queryから5queryにする方法
use App\Models\User;
User::factory(10000)->create();
上記のコードを見ると、Laravelは1ユーザーを作成し、1queryでデータベースに挿入しています。これを1万回繰り返しています。そうすると、パフォーマンスにとって悪いことで、DBを遅くしてしまいます。しかし、これを簡単に解決することができます!
$records = User::factory()->count(10000)->make();
$records->chunk(2000)->each(function($chunk) {
User::insert($chunk->toArray());
});
上のコードでは、メモリ(PHP)上に10,000のユーザーレコードが作成されています。 次に、これを2,000レコードのチャンクに分割して配列に変換し、クエリの数を10,000から5つにします!
ということで、今回はこれで終わります。
金曜担当 – Ami
asahi at 2022年08月26日 10:00:00