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