Teng::Plugin::Pager および、Teng::Plugin::Pager::MySQLFoundRows を使う方法があります。
指定したrowsより一件多く取得し、それを元に次のページがあるかどうか、を判断します。
どのRDBMSでも使えて、そこまでパフォーマンスに致命的な影響を与えることがない、というのがメリットですが、ページャーは全体の件数を知ることはできないので、ページングの表示のさせ方は制限されます。
名前の通りMySQLでしか使えません。SQL_CALC_FOUND_ROWSヒントをつけてクエリを実行後、FOUND_ROWS()を呼びだすことで全体の件数を取得します。
場合によっては、クエリのパフォーマンスに大きく影響がでてくる場合があります。
Teng::Plugin::SearchBySQLWithPagerが使えます。