【MySQL】SQL_CALC_FOUND_ROWS + SELECT FOUND_ROWS()でLIMIT前の行数をカウントする方法はMySQL8.0.17で非推奨化している

本文

タイトルとMySQLの公式ドキュメントに書かれている内容が全てです。 dev.mysql.com

SQL_CALC_FOUND_ROWS SELECT FOUND_ROWS()」というような形で検索しても非推奨化している旨がパッとは出てこなかったためこの記事を書きました。

補足

公式ドキュメントに書かれている内容で、SQL_CALC_FOUND_ROWS + SELECT FOUND_ROWS()を使わない理由は以下のようになるかなと思います。

  • 一部の最適化が効かないため遅い場合がある
  • UNIONと合わせた時に特別な扱いが必要になる
  • ステートメントベースのレプリケーションでは、確実にFOUND_ROWS()をレプリケートすることができない