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