のように、全体件数と表示中のデータ件数が併記される場合が多い。ところが、レコード数が多くなったり、SQL文が複雑になると、全体件数の取得にかかるスピードが物凄く遅くなる場合がある。 と言う訳で、どのような方法で全体件数を取得するのが高速なのかを調べてみた。 環境はMysql+PHP。候補は次の3つ。 COUNTを使う。 mysql_num_rowsを使う。(*PHP関数) FOUND_ROWSとSQL_CALC_FOUND_ROWSを使う。 サンプル ※以下のSQLの結果、及び、LIMITの制約を外した場合の結果(=全体件数)を取得する。 $query = 'SELECT id, name, area FROM company ORDER BY id LIMIT 20'; $q1 = 'SELECT COUNT(*) FROM company'; //全体件数を取得するシンプルなSQLクエ