このようなアプリケーションがある画像:1つのDBテーブル、いくつかのintフィールド、いくつかの小さなvarcharフィールド、および約10のTEXTフィールド(コンテンツ変数-長さ約50文字、ほとんどが約100〜200、いくつかが約1000、非常に少ないデータ) 1000)。行数はx0000〜x00 000です。ここで、次のようにクエリを実行する効果的な方法が必要です(メタ言語)。
SELECT(1 if textfield1 LIKE%param1%ELSE 0)as r1、(1 if textfield2 LIKE%param2%ELSE 0)as r2、...など、通常、1つのクエリのほとんどのテキストフィールドに対して(動的である可能性があります)それらのうちの2つが含まれている、それらすべてである可能性があります)。
さて、質問-私にとって、MySQLとMSSQLのどちらが良いですか(おそらく可能な限り表現し、本当に必要な場合は完全にアップグレードします)?
MySQLには、最初の文字のカスタム数に設定した優れたテキストインデックスがあることを知っているので、一般的なシナリオでバランスを取ることができます(例:http://fernandoipar.com/2009/08/12/indexing-text -columns-in-mysql /)
MSSQLには全文索引しかありませんが、私はこれを経験していません。単語の近接性や類似の単語などの機能は必要ないことに注意してください(run = ran;一部のステミングは便利ですが、データは多言語であるため、とにかく不可能です)。一般的なLIKE%word%システムが必要です。それだけです。また、短い部分文字列(2文字)を見つけることができなければなりません。
事実上、目標は1時間/日あたりできるだけ多くのこれらのクエリを実行することです(可能な限り頻繁に更新する必要があるため、十分な結果は得られません)。したがって、この種の効率を要件と考えてください:)
ありがとう!
更新:明らかに、LIKE%foo%クエリを最適化するためにインデックスを使用する方法はありません。したがって、新しい質問は次のとおりです。このタイプのクエリを高速化する他の方法はありますか?(「RAMまたはSSDをもっと購入する」などは省略してください:)