私は非常によくある問題を抱えていますが、それに対する良い答えが見つからないようです。
このデータをページ分割するのに十分な情報だけでなく、テーブルから 1 ページ分の行を取得する必要があります。したがって、一般に、行の総数を非常に大まかに見積もる必要があります (一般に、私が知る必要があるのは だけですceil(count()/50)
)。
本当にcount()
やり過ぎです。そして、私はすでにSELECT * FROM table LIMIT 0, 50
実行しているので、このコマンドに追加できればなおさらです。
について聞いたことがありSQL_CALC_FOUND_ROWS
ます。ただ、count
自分でやるより特に効率的というわけではないとも聞きました。「残念ながら、SQL_CALC_FOUND_ROWS を使用すると、発生する可能性のある LIMIT 最適化が吹き飛ばされるという厄介な結果が生じます」。
したがって、全体として、MySQL の行推定を使用するのがよい方法だと思います。しかし、私はそれを行う方法がわかりません。または、この見積もりがどれほどずれている可能性がありますか。
注 1: 私の状況では、私が作業しているほとんどのテーブルは、常にではなく、1 日に数回更新されるだけです。注2:phpでPDOを使用しています。