phpのページネーションを実装するにあたってデータの件数と、表示するデータをDBから取得する必要があるかと思います。
現在の実装方法では下記のような実装を行なっています。
PHP
1$base_sql = "FROM users where role = 1 "; 2 3$sql = "SELECT order_details.* ".$base_sql ; 4$t = ($page-1)*$perPage; 5$sql = $sql . "ORDER BY order_details.created_at DESC 6 LIMIT ".$perPage." 7 OFFSET ".$t; 8$count_sql ="SELECT count(*) as count ".$base_sql; 9 10// SQLを2回叩いてページネーションクラスに詰める
ネットで調べるとSQLを1回叩き全件取得し、php側でsliceなどを使う方法が多く見受けられました。
どちらの方がより早い処理を実現できるのでしょうか?
追記
DB : mysql5.6
limit offsetとbetweenでは用途が違うと意見をいただきました。
確かに今回の実装ではidが不連続になるため、betweenを使うことは厳しいようです。
回答1件
あなたの回答
tips
プレビュー