mysql:4388
From: Emiko Sano <Emiko Sano <emi@xxxxxxxxxx>>
Date: Tue, 02 Oct 2001 10:18:43 +0900
Subject: [mysql 04388] Re: インデックスについて
こんにちは。佐野です. >> SELECT * FROM A , B >> WHERE A.a = LEFT(B.aa) AND >> .... > >explain の結果はどうなってます? IX_A の方が使われているんなら、 >それでいいと思うんですが…。 > すみません。SQL全文を載せると長いので省略してしまったのですが、 Aテーブルでは別カラム(仮にb。これにもINDEXがはってあります。)にも条件を指定しています。 explainでみると、 Aテーブルではbカラムに張ったインデックスを見ています. BテーブルではIX_Bを使わず全件検索しています. 今の状態では、検索結果が返ってくるまでに3分ほどかかってしまいます. >> また、カラムの一部に対してインデックスを張った場合、 >> どのようなSQL文をかけばそのインデックスを参照するのでしょうか? > >普通に書けば使われると思います。 > SELECT * FROM B WHERE aa = '1234'; >とか。 それでは、 B.aa='1234566789'等は引っかからないのではないでしょうか?? B.aaは実際には10〜20文字ほど入っています.その頭4文字が A.aと同じになっています. 普通に文字指定だけなら where B.aa like '1234%' でいいと思うのですが、別カラムとなると、 where B.aa like concat(A.a,'%') とかにしないといけないのでしょうか? ちなみに上のように書いてもIX_Bは使われませんでした。 もしかしたら、基本的なところで勘違いしているのかもしれませんが、 よろしくお願いします. ---- Emiko Sano emi@xxxxxxxxxx
4379 2001-10-01 20:54 [Emiko Sano <emi@xxxx] インデックスについて 4380 2001-10-02 00:00 ┗[とみたまさひろ <tomm] 4383 2001-10-02 02:17 ┣[fumi <fumihattori@xx] text 型の column を持っているテーブルのバックアップについて・・・ 4385 2001-10-02 02:23 ┃┗[fumi <wolfgang@xxxxx] すみません、以前の投稿したメールを手違いで送信してしまいました。 -> 4388 2001-10-02 10:18 ┗[Emiko Sano <emi@xxxx] 4389 2001-10-02 13:29 ┣[黒岩 <kuroiwa@xxxxxx] ODBC で int 型 select できず 4390 2001-10-02 13:58 ┃┗[<endo_t@xxxxxxxxxx> ] 4391 2001-10-02 14:15 ┃ ┗[黒岩 <kuroiwa@xxxxxx] 4394 2001-10-02 23:15 ┗[とみたまさひろ <tomm] 4424 2001-10-04 18:08 ┗[Emiko Sano <emi@xxxx]