mysql:11951
From: jiao congmian <jiao congmian <melmajiao@xxxxxxxxxx>>
Date: Sat, 13 Aug 2005 10:24:30 +0900 (JST)
Subject: [mysql 11951] Re: HEAP テーブルへのあいまい検索の速度
こんにちはJIAOです。 いろいろご意見ありがとうございました。 それについて検証した事やコメントを書かせていただきます。 「カーネルを物理メモりにロード」 HEAPテーブルへのあいまい検索速度にはあまり差は無かったで す。 (でもやり忘れていたのでやっておきました。他で良い影響が ありそうです。) 「Serial ATA RAID にする」 RAIDは試していません。同一機で違うHDDでも試していません 。 でもメイン機のHDDはSerialでサブ機の2倍ほど早いのですが 、HEAPテーブルへのあいまい検索速度はCPUの能力に依存して いてHDD速度は関係ないように見えます。 理屈でもHEAPテーブルはメモリ上のテーブルですからHDDは関 係なさそうです。 またHEAPへの検索中にHDDアクセスのランプは点灯しません。 「VBのバージョン・ADOとDAO」 HEAPテーブルへのあいまい検索をかけている瞬間をタスクマネ ージャーで見ていると、VB(で作成したEXE)はMYSQLが結果を 返してくれるのを待っているだけで、MYSQL(mysqd-nt.exe) だけが頑張っている状態になります。 MYSQLが順番に検索対象文字列に検索文字列が含まれていない かを探す部分に時間を要していると思われ、結果を作成するの に時間を要しているのではなさそうに思います。(でも後者な らDAOにすると効果あるかも?後日試すかも知れませんがDAOは 経験少ないので・・・) 「Mysqlの全文検索機能・N-Gram」 N-Gramという言葉は初めて知りました。 でも独自にそれに似た試みは行いました。 2文字に分けたり、1文字にしたり、それをコードで格納した り・・・ それを完全一致で検索したり、MATCH()で検索したり・・・ でもHEAP+LIKEに比べて、時間でも勝てませんし、正確さでも 勝てませんでした。 (半年以上前の事で少々あやふやですが) インデックスになじまない最大の理由は会社名の一部検索が多 いからです。 『松下電器産業』が対象文字列の場合。 『松下』でヒット 『器』でヒット 『松下 and 産業』でヒット 『下松』はヒットしない 『松下産業』はヒットしない という具合にしたいのです。 文字数で文節を分けても、日本語辞書で文節を分けてもうまく 行きません。 やっぱりあいまい検索になっちゃいます。 やはり、HEAPテーブルへのあいまい検索速度を早くするにはCPU を早くするのが一番のように思えます。 で、最近のCPUとMYSQLの性能の関係はどうなんでしょう。 最近のCPUは64ビットで2つのコアとなっています。 まず32ビットから64ビットCPUに変更して、OSもMYSQLも6 4ビットに対応した場合。 同一クロック当たりの処理量は理論上2倍となる、と考えて良 いのでしょうか? (64ビットCPUのメリットをネットや本で見ても「倍速にな る」といった説明を見ませんでした。) またCPUが2つのコアを持っていた場合。 MYSQLは両方のコアを使用して1つのクエリを倍速で実行する 、のでしょうか? (私の環境ではHTを有効にするとMYSQLは2つのCPUを使ってい るように見えます。) __________________________________ 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]