« MySQL (InnoDB) に直接アクセスしてタイムライン処理を高速化する話 | メイン | なんとなくリフレクション in C++ »
2008年06月20日
MySQL の ORDER BY を高速化
Pathtraq の拡張にむけて、いろいろ技術的な可能性を調査していると、MySQL の ORDER BY に負荷がかかっていることが分かりました。他にもボトルネックはあるのですが、ここは比較的最適化しやすそうだったので、試しに書いてみました。
やっていることは、ソートルーチンのベタな最適化です。ORDER BY 句によって悪名高き filesort が実行される場合に、最大30%〜50%ほど高速に動作するようになりました。ただ、自分が書く類いのクエリだと、本質的には top n sort を実装すべきなので、どうしたものかと思っています。現状、x86-64 向けに書いているので、RISC だと確実に落ちると思いますが、at your own risk で試したい方はどうぞ。
投稿者 kazuho : 2008年06月20日 15:46
トラックバック
このエントリーのトラックバックURL:
http://labs.cybozu.co.jp/cgi-bin/mt-admin/mt-tbp.cgi/1939
コメント
最近、MySQL検索が重くなっており、原因を調べているところです。早速、ダウンロードしてみます~
ありがとうございました。
投稿者 レンタルサーバーJ : 2008年12月17日 17:54