2008-06-29から1日間の記事一覧

パフォーマンスを求めて

結局、わかったことは、 次の4つ。 index から 実体へのシークは遅い。 すべてがindex内で完結するクエリーは早い。 limit をつけても where や order by すると意味がない。 indexを張るなら Using indexe をゲットできないと負けかな。 では、select で取…

order by を手なづける

order by が信じられないぐらい遅いときがあります。次の例を見てください。A. まず、ソートなしでクエリーを実行します。 select SQL_CALC_FOUND_ROWS task_name from task where task.task_starttime <= '2008/6/18' and task.task_endtime >= '2008/6/5' …

恐怖 index を張れば張るほど遅くなるクエリー

index から実体へのシークは mysqlの速度を大幅に下げることで有名です。事実、indexから実体に対して30%のアクセスがある場合はオプティマイザがindexを利用するのをやめるぐらいです。 シークってそんなに遅いものなのか?って思いますが、とりあえずは受け…

パフォーマンス測定の前提条件

テストは vmplayer 上の debian etch で行います。 ホスト環境 intel Q6600 メモリ2Gの WindowsXPです。 クエリーをキャッシュされないように、クエリキャッシュを 0 にします。 /etc/mysql/my.cnf query_cache_size = 0 #no cahce debug swapで遅くなると困…

mysqlのindexとorder by の速度を改善する。

mysqlを利用していて、indexをちゃんと張っているのにパフォーマンスが出ない。 explain でも type = ref / key = INDEX 等が表示されているのにすごくクエリーが遅かったりする。 思い切って index を消したら逆にパフォーマンスが改善した! why? データ件…