英語以外の単語を検出するためにEnglish dictionary(約275,000個のキーワード)の単語を検索する必要があります。現在使用しているクエリは実際には最適化されていません(words
テーブルとtexts
テーブルがあります)を実行するために10秒以上かかります: 複数のキーワードのテキストを検索
SELECT word FROM words WHERE 'The quick brown fox jumps over the lazy dog' LIKE CONCAT('%', word, '%');
私は既にインデックスとしてword
フィールドを設定しており、テキストをデータベースに格納したり、クエリに直接入れる人の例を見てきました。
FULLTEXTを使用している人は300キロメートルの単語を持っていますが、私はFULLTEXTはうまくいかないと思っています。ロジック+brown +lazy -apple
で検索すると良いでしょう。
Another example私は、IN (...)
句と単語を結びつけることを見てきましたが、500mのキーワードを持つとクエリはちょっとひどく長くなります。
何をすべきか?
今テキストがtext
フィールドとutf8_unicode_ci
エンコーディングとInnoDB内varchar(50)
などの単語として保存され、私はInnoDBはので、私はMyISAMテーブルや他のを使用することができます遅いです聞きました。 MySQL 5.6を使用していますが、5.6に更新することはできました。
それは、MySQLで行う必要がありますか? – baao
それは、PHPのための/ MySQLのWebサイト – Kenzier