例のTipsの72番にCOUNT(*)を使わないことというのが有った。代替案として挙げられていた方法が初耳だったので、調べてみた。 なんでもSELECTのオプションにSQL_CALC_FOUND_ROWSというのが新設されて(4.0以降)、それを使うと良いらしい。 mysql> select SQL_CALC_FOUND_ROWS * from attach limit 20; とそのオプション付きでSELECTを一回実行し、その後found_rows()という関数で実行すると mysql> select found_rows() ; + found_rows() + 300 + 1 row in set (0.00 sec) その検索対象の総数が取れるという仕組み。一回目のSELECTでlimit句を付けて出力結果の総数を制限していても、その後検索条件にヒットしたのが何件だったのが取得出