Laravel Tips

一度に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



アプリ関連ニュース

お問い合わせはこちら

お問い合わせ・ご相談はお電話、またはお問い合わせフォームよりお受け付けいたしております。

tel. 06-6454-8833(平日 10:00~17:00)

お問い合わせフォーム