MySQLとか
今日の昼食は健康的でした。
てことで、MySQL+iBatisでやってるわけですが、やけに遅い。
SELECT SQL_CALC_FOUND_ROWS * FROM テーブル LIMIT 0,10;
LIMITついてても、この後に
SELECT FOUND_ROWS();
で、全件数を取得できるってことでやってたんですが、コレがネックになってたみたい。
INDEXの張り方かなと思ったけど、COUNT(*)に変えたら、インデックス張ってないもののWHEREやORDERでも、まぁそれなりの速度だったので、そうともいえないみたい。
InnoDBとMyISAMの違い?
結果セットを送る必要の無い COUNT() との比較については、リファレンスマニュアルには書かれていない。しかし、オープンソース情報データベース OSS iPedia での検証によれば、約 70% のパフォーマンス向上が確認できたとの事(InnoDB によるものなので MyISAM は未検証)。
http://private.ceek.jp/archives/002864.html
MyISAMだからかなぁ・・・。