« MySQL (InnoDB) に直接アクセスしてタイムライン処理を高速化する話 | メイン | なんとなくリフレクション in C++ »

2008年06月20日

MySQL の ORDER BY を高速化

 Pathtraq の拡張にむけて、いろいろ技術的な可能性を調査していると、MySQL の ORDER BY に負荷がかかっていることが分かりました。他にもボトルネックはあるのですが、ここは比較的最適化しやすそうだったので、試しに書いてみました。

mysql51-sort-opt.patch

 やっていることは、ソートルーチンのベタな最適化です。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