タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

countに関するsomemoのブックマーク (2)

  • COUNTとCALC_FOUND_ROWSとストアドプロシージャと - イノベートな非日常

    WEBアプリケーションで、ページャーにてページ分割をする場合、MySQLではLIMITを使うことになりますが、その際に全体のページ数を計算する為に、対象レコードするを取得する必要があります。この対象レコード数をMySQLSQLで実現するメジャーな方法として、以下2つの方法があると思います。 count CALC_FOUND_ROWS 以上、それぞれ2つの方法について見てみましょう。 count 最もオーソドックスな方法です。単純にデータ取得用のSQLをcount()に組み替えて対象レコード総数を取得します。データ取得用SQLとカウント取得用SQLの2つを実行することになります。 CALC_FOUND_ROWS まさに、この用途の為にあるような関数です。データ取得用SQLを実行と同時にデータ総数を取得できます。....がデータ量が多かったりすると逆に遅くなったりします。また、複数テーブルを

    COUNTとCALC_FOUND_ROWSとストアドプロシージャと - イノベートな非日常
  • 漢(オトコ)のコンピュータ道: InnoDBでCOUNT()を扱う際の注意事項あれこれ。

    InnoDBを使うとき、MyISAMと比較して度々やり玉に挙げられるポイントとして「COUNT()が遅い」というものがある。確かにInnoDBにおいて行数を弾き出すのにはテーブルスキャンが必要なのだが、そもそもMyISAMのCOUNT()が速い(テーブルの行数を保持してる)のが特殊なのであって、InnoDBが遅いわけではないのである。とはいえ、高速なCOUNT()については需要が多く、この問題には多くの人取り組んでおられるようだ。しかしながら、COUNT()のチューニングについては未だ語られていない点があるように見受けられるので、今日はCOUNT()のチューニングについて解説しようと思う。 COUNT(*)、COUNT(col)、COUNT(1)の違い基的なことではあるが、COUNT(*)とCOUNT(col)では意味が異なるため、異なる結果が返される場合がある。COUNT(*)はフェッ

    漢(オトコ)のコンピュータ道: InnoDBでCOUNT()を扱う際の注意事項あれこれ。
  • 1