mysql:9477
From: OHTSUKA Ko-hei <OHTSUKA Ko-hei <techml@xxxxxxxxxx>>
Date: Sun, 30 May 2004 11:53:27 +0900
Subject: [mysql 09477] Re: ある値の最も近い周辺値を抜き出す場合、インデックスは使われる?
大塚です。 > インデックス(の中身)は変動しない静的な情報ですね。ある値との差の絶対値 > の「ある値」が静的なものであれば、ある値との差の絶対値のフィールドを設け、 > それにインデックスを張れば良いでしょう。 「ある値」は動的です。 MLの投稿ではmySQLに発行されるコマンド、と言う事で > SELECT hoge FROM foo ORDER BY ABS(200 - hoge) LIMIT 10; 的な書き方をしましたが、実運用上は例えばperl-DBI等で $val = 200; $dbh->prepare('SELECT ... ORDER BY ABS(? - hoge) ...')->execute($val); といった形を考えています。 > 「ある値」が外部から与えられる変動するものであれば、ある値との差の絶対 > 値も変動する動的なものでしょう。静的な値が格納されているインデックスから > 動的な値を検索しようとする事に無理があると思います。 なるほど、そう考えると判り易いですね。 SQL文で直接「ある値の周辺値」を求めるのが難しい(やろうとすると全件 トレースになる)のは理解しました。 ただ、そういう要件はよくある事だと思うのですが、一般的なやり方という ものはないのでしょうか。 要件の詳細次第で個々考えていくしかないのでしょうか。 以上、よろしくお願いいたします。 ********************************************************* @北緯35°36′47 東経139°42′06 JGD2000 大塚 恒平 OHTSUKA Ko-hei <<nene@xxxxxxxxxx>> i-mode・EZWEB・vodafone Live!・Air H" Phone多分対応(汗) 位置情報総合サイト「ここギコ!」http://kokogiko.net/
9474 2004-05-30 09:25 [OHTSUKA Ko-hei <tech] ある値の最も近い周辺値を抜き出す場合、インデックスは使われる? 9475 2004-05-30 10:39 ┣[OHTSUKA Ko-hei <tech] 9476 2004-05-30 11:33 ┗[ML account <ml@xxxxx] -> 9477 2004-05-30 11:53 ┗[OHTSUKA Ko-hei <tech] 9478 2004-05-30 13:35 ┗[ML account <ml@xxxxx] 9481 2004-05-31 12:15 ┗[OHTSUKA Ko-hei <tech]