• 締切済み

MySQLで辞書を作っています。データ量と検索スピードについて質問です

MySQLで辞書を作っています。データ量と検索スピードについて質問です。 はじめて質問します。 今、PHPとMySQLで辞書システムを作っています(初心者です)。日本語と(恥ずかしながら)中国語の辞書なのですが、単純に単語を検索する機能と、検索した文字列(=単語)を含む例文を表示する予定です。ついでにその単語が属するカテゴリーがあり、そのカテゴリーに対応したアフィリエイト広告を表示させるのですが、データ件数が増えた場合、MySQLのスピードがどうなるのかが気になります。 具体的には、将来的に日本語単語が15万語、それに対応する中国語単語が15万語、さまざまな例文が20万件くらいになった場合、MySQLの検索スピードは明らかに体感できるほど落ちるものでしょうか。合計1万件程度の時と比べてどうでしょうか。 よろしくお願いします。

  • MySQL
  • 回答数1
  • ありがとう数16

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

全文検索をつかえるならSQLらしいはやい検索ができます。 そのためには文字の分かち書きが必要です。 MySQLに専用ライブラリを組み込むか、 kakasiなどで分かち書きをしたうえで登録するかのどちらかになると思います。 そうではなく冗長なデータ管理をする場合は、 前方後方一致 ・・・LIKE '%hoge%'や、正規表現 REGEXPをつかいますが データが最適化されるわけではないので、おもったようなスピードはでないと思います。

関連するQ&A

  • PHP/MySQLであいまい検索を

    HP上のテキストボックスに文字を入力し、その値をPHPでMySQL上のデータベースよりあいまい検索をし 該当するデータを表示したいのですが、私の検索キーワードが悪いのか、いいサンプルソースが見つけられません。 MySQLのREGEXP関数を使ってあいまい検索を 行うサンプルは見つけたんですが、これは日本語対応では なく検索文字列によってはうまく検索できない場合が あると聞きました。 何かよいサンプルがあったらURLもしくは ソースをそのままで結構ですので貼り付けていただければ 助かります。 では、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • mysqlでyahooやgoogleのような検索スピードを出したい

    mysqlでyahooやgoogleのような検索スピードを出したい yahooやgoogleで検索するとどんなキーワードを入れても1秒以内に結果が返ってきます。 mysqlでデータ1000万件程度を想定してるのですが、いくらネットで調べて最適化したインデックスを貼っても全文検索にしてもyahooやgoogleのようにはいきません。 これは主にハード構成が主因となってるのでしょうか? サーバーを並列化するとかってのをネットで見ることもあるのですが具体的にどうなってるから速いのかよくわかりません。 そのあたりのご教授お願いします。

    • ベストアンサー
    • MySQL
  • MySQL4.0での日本語検索

    MySQL4.0で簡単なワード検索をしようと思っています。 HTMLのフォームを使い、単語をいれてもらう形式です。 FULLTEXTを使い日本語検索をしようとおもったのですが、どうやら格納するデータおよび、検索する際の単語をお互い16進変換すれば大丈夫そうなのですが、データを登録する際の諸事情によりそういうわけにも行かず困っています。 LIKE '%テスト%' みたいな検索だとさすがに重過ぎるわけです。 なにかよい方法はないのでしょうか? ちなみに、サーバ環境はレンタルサーバのためかなり制約があります。。

  • 電子辞書と例文検索

    CASIOの電子辞書「LP-7600」を使用しています。 勉強するにつれて、たくさん例文を知りたいのですが この辞書には、例文検索が英語しかありません。 韓国語辞書とうたってあるのに出来ないのが不便に感じています・・。 検索機能が充実している他の辞書があれば買おうと思います。 どなたか、おすすめを教えて頂けないでしょうか? 宜しくお願いします。

  • MySQLのあいまい検索について

    MySQLのあいまい検索について いつもお世話になっております。 本日はMySQLのあいまい検索について質問させていただきます。 あいまい検索といっても like での検索ではなく バとヴァ・ブとヴ・全角ハイフンと半角ハイフンなどを 同じとみなして検索することはできるのでしょうか。 たとえば、データベースには「ラブ」と登録されているが 検索キーワードは「ラヴ」と入力された場合、検索結果に「ラブ」の行を表示したいです。 PHPとMySQLで開発をするのですが、MySQLではなくPHPの処理になるのでしょうか。 カテゴリ違いでしたら申し訳ありません。 よろしくご教示お願いいたします。 [環境]  MySQL:5.0.45  PHP:5.1.6

    • ベストアンサー
    • MySQL
  • ロシア語辞書検索ツールを作りたい

    自作の露-日・日-露辞書をweb上で検索できる辞書検索ツールを作りたいと漠然と思っています。 検索キーワードを入れると、単語の意味と例文も表示されるようなものを目指しています。 例えばこのサイトのロシア語版のような感じで。 http://eow.alc.co.jp/%E3%83%AD%E3%82%B7%E3%82%A2%E8%AA%9E/UTF-8/?ref=sa しかし、プログラミング初心者なので何からはじめたらいいのか見当がつきません。 こういうツールはどういう言語でプログラムされていて、どういう仕組みでこんな風に表示できるのか、 どなたか初心者にもわかるように教えていただけないでしょうか。 よろしくお願いいたします。

  • 電子辞書の検索機能と同じような機能をPCで使いたいのですが

    例えば1冊の英語の参考書をコンピュターに保存させたとして、後から一つの単語(場合によっては複数単語)を打ち込めば、ダイレクトに一覧表示してくれる見出し機能を持ったソフトウェアはあるのでしょうか? web検索エンジンや電子辞書の例文検索や成句検索のようにその単語を含む全ての例文や文字列を参考書から抜粋してくれる検索機能がほしいのです。 お勧めのソフトウェア(フリーウェアがありがたいですが)をご存知であればお教え下さい。 あるいはワード・エクセル等を使って可能なのでしょうか?

  • MySQLに格納するデータと検索速度

    MySQLに都道府県のデータをinsertしたいのですが、「北海道」という文字にするか、置き換えて数字の「1」にしようか迷っています。 「北海道」という文字をinsertした場合は、取り出したときにそのまま表示できるので便利かなと思っています。 しかしながら、抽出する際に「北海道」という2バイト文字で検索するのもどうなのかと思っています。 抽出する際には数字の「1」などの方が早いような気もするのですが、数万件のデータだったら「北海道」などの2バイト文字を検索しても問題ないでしょうか? このような場合の定石がありましたら教えてください。

    • ベストアンサー
    • MySQL
  • PHP+mysqlでの検索について

    データベースの方で同じ質問をしましたが、カテゴリー的にはこちらの方が適当だと感じましたので、再度このカテゴリーで質問させていただきます。 以前、このカテゴリー内で「MYSQLで違う検索結果が出てしまいます。」という質問をした者です。 再度同じような壁にぶつかってしまい悩んでいます。 具体的には以下のよう状態です。 テスト環境(会社のパソコン) PHP4.2.3 mysql4.0.5 検索結果~異常なし 公開環境(レンタルサーバー) PHP4.1.2もしくは4.2.1(サーバーによって違うということです) mysql3.23.46 検索結果~正しい検索結果が出ない となっています。 検索語がカタカナor漢字の場合は正常に動作するのですが、ひらがなだと「な」と「に」、「に」と「り」などがごちゃごちゃになるらしく、 例えば、検索語で「うに」と入れると「うに」と「うり」が検索結果として返ってくるのです。 文字コードの設定かとも思ったのですが、テストの環境の方では正しい検索結果が出ていますし、mysql内の文字コードもテスト環境はもちろんですが、レンタルサーバーの方でも「文字コードにEUC文字コードを利用して下さい」ということから、テスト環境と同じく default-character-setはujisになっていると思われます。 あとはPHP・mysqlのバージョンの違いくらいしか思い当たるところがありません。 どなたかアドバイスいただけるとありがたいです。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • MySQLで日本語検索

    MySQL初心者のものです。 今PHPとMySQLを利用して検索システムを作っています。 しかし日本語検索がどうしてもうまくいきません。 一応「教えてgoo」でも探してみたのですが、解決しませんでした。 MySQLで、 テーブル名 table フィールド名 field とすると、 select * from table where field like '%キーワード%'; のように検索してみたのですが、思うような結果が返ってきません。 ネットで検索すると「senna」をインストールと書かれていましたが、 そういったものをインストールしなければMySQLで日本語検索は出来ないものなのでしょうか? ちなみに MySQL5.0 PHP5.2.1 を利用しています。