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]