[前][次][番号順一覧][スレッド一覧]

mysql:15456

From: Masuda <Masuda <masuken@xxxxxxxxxx>>
Date: Sun, 19 Dec 2010 02:49:54 +0900
Subject: [mysql 15456] orderのfilesortに関して

増田と申します。

filesortはあまり好きではないので、色々調べたり工夫してみたのですが、
どうにもうまくいかず、解決策が浮かばないので、ご教授頂きたく思います。

mysql> SELECT a, b, a*b AS c FROM num ORDER BY c;

というクエリがあったとき、cでソートをするとSELECTで演算を行っているため、
どうしても中間テーブルのようなものができてしまいます。
(最初から、cというカラムを作っておけば良かったのですが…)

サブクエリで上記のかけ算とソートを行ってから、SELECT文を発行しても、
Subquery returns more than 1 row
と言われてしまいますし、ビューを作るのもコストが高いかなと思い、

今ひとついい方法が見つかりません。


filesortが出てしまう性質のものとして、この種のクエリは回避できないと考えるべきなのでしょうか?
もしなにかありましたらご教授頂けると嬉しく思います。

宜しくお願い致します。


増田
-- 
mailto:masuken@xxxxxxxxxx

[前][次][番号順一覧][スレッド一覧]