Laravel8 limitとtakeの違い

limitとtakeだったり、offsetとskipの違いって何なんだろう?
ドキュメントを見ると、offsetとskipでどの位置から、limitとtakeで取得件数と似たような動きをしているけど、それぞれのメリットデメリット、処理速度の違いがあるのか調べてみた。

offsetとlimitの場合

$prefectures = Prefecture::orderBy('id', 'ASC')
    ->offset(10)
    ->limit(5)
    ->dump();

発行されたSQL

"select * from `prefectures` order by `id` asc limit 5 offset 10"

skipとtakeの場合

$prefectures = Prefecture::orderBy('id', 'ASC')
    ->skip(10)
    ->take(5)
    ->dump();

発行されたSQL

"select * from `prefectures` order by `id` asc limit 5 offset 10"

結果、発行されるSQLには違いはありませんでした。
skipとtakeっていらなくない??w

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です