ゲストさんログイン

統合検索

ソーシャルブックマーク

[PR]PCとスマートフォンに安心を!

Ads by Google

ページ詳細

34
users

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

InnoDBを使うとき、MyISAMと比較して度々やり玉に挙げられるポイントとして「COUNT()が遅い」というものがある。確かにInnoDBにおいて行数を弾き出すのにはテーブルスキャンが必要なのだが、そもそもMyISAMのCOUNT()が速い(テーブルの行数を保持してる)のが特殊なのであって、InnoDBが遅いわけではないのである。とはいえ、高速なCOUNT()については需要が多く、この問題には多くの人取り組んでおられるようだ。しかしながら、COUNT()のチューニングについては未だ語られていない点があ...


コメント

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

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

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

『なんとMySQLは自動的に一番小さいサイズのカラムを選択したではないか!もちろん結果も劇的に変化している。1分半→3秒弱である。まさに劇的ビフォーアフター!』

うな場合でも、セカンダリインデックスをスキャンするだけで正しい結果が得られることになり、オプティマイザは最も効率よくスキャンが出来るカラム=サイズの小さいカラムを選択するわけだ。ちなみに、COUNT(a)でもカラムcのインデックスが利用される。カラムaはNOT NULLが指定されているため、COUN...

COUNT(col)でオプティマイザにセカンダリインデックスを利用してもらうと速い。メリット, デメリット併記

Ads by Google


クリップ(29+5)
漢(オトコ)のコンピュータ道: InnoDBでCOUNT()を扱う際の注意事項あれこれ。
livedoor クリップのトップに戻る