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

mysql:11912

From: jiao congmian <jiao congmian <melmajiao@xxxxxxxxxx>>
Date: Sat, 6 Aug 2005 18:11:53 +0900 (JST)
Subject: [mysql 11912] HEAP テーブルへのあいまい検索の速度

こんにちは。Jiaoと申します。
趣味で1年ほどMYSQLを扱っています。

WindowsXP上でMYSQL4.0.24を使用しております。
検索には主にHEAPテーブルを使い満足しているのですが、
さらに検索時間を短くできる方法が有ればと思い投稿しま
した。

HEAPテーブルは2つのフィールド(int_field(int型)・
varchar_field(varchar型))を持ち、varchar_fieldには
日本語(SJIS)が入ります。
400万件弱のレコードでサイズは700M弱です。

このHEAPテーブルにやりたいことは単純です。
varchar_fieldに検索したい文字列が見つかれば、int_field
の数字を返す。

SQL文にすると以下のようになります。
SELECT int_field FROM heap_table WHERE varchar_field like
'%
検索語%';

これで結果が返ってくるまで15秒ほど要します。
HDD上のMyISAMなら同条件で20分以上を要するので満足な
数字ですが、これをさらに短くしたいです。

以下に関係ありそうな事を書きます。
・日本語インデックスは使いたくないです。
・VBから検索をかけています。
・VBからADOを使ってもMySQLDBを使っても検索時間に差は
 ほとんどありません。
・15秒はPentium 4(3.0GHz)でMYSQLに最大50%のCPU使用
 率とした時の例です。
・CPU使用率を変えると、使用率と検索時間はほぼ比例する。
・他の機種で試しても、カタログ上のCPU性能に検索時間は
 ほぼ比例する。
・レコード数と検索時間はほぼ比例する。
・メモリには余裕がある。(空容量:700M・速度:FSB800)
・テーブルを分割してUNIONしてみたら、検索時間はほとんど
 変わらない。
・AND や NOT を加えても、検索時間はほとんど変わ
 らない。
・ORDER BY しても、検索時間はほとんど変わらない。
・limit をつけても、検索時間はほとんど変わらない。
・関係ありそうなシステム変数でいじったのは
 max_heap_table_sizeぐらい。

HEAPのあいまい検索速度をもっと早くするにはCPUを速くする
以外無いと思えるのですが、正しいでしょうか?
OSの違いはMyISAM などで大きな違いを生むと思いますが、
HEAPでもOSの違いはあるのでしょうか?

方法があるようでしたら是非ご教示ください。
よろしくお願いします。

__________________________________
Save the earth
http://pr.mail.yahoo.co.jp/ondanka/


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

->   11912 2005-08-06 18:11 [jiao congmian <melma] HEAP テーブルへのあいまい検索の速度     
     11913 2005-08-06 21:32 ┣[深海水草 <VYG01106@x]                                       
     11914 2005-08-08 09:25 ┗["Ryousuke Wayama" <w]                                       
     11915 2005-08-08 11:32  ┗[川合孝典 <gcd00051@x]                                     
     11919 2005-08-08 19:11   ┗["T.Sasaki" <papasan2]                                   
     11951 2005-08-13 10:24    ┗[jiao congmian <melma]                                 
     11952 2005-08-13 17:08     ┗[深海水草 <VYG01106@x]