フォーラムの投稿の表がありますが、英語を母国語としない世界中のユーザーが多く、スペルが間違っていると結果を見つけるのに苦労するため、基本的な検索機能を改善したいと考えています。現在のフォーラム検索は正確です。
これらのデザインのどれが最高のパフォーマンスを発揮しますか?データベースに500,000レコードがあり、検索が頻繁に使用されると想定します。理想的には、すべてのレコードを検索したいと思います。
デザインワン
各フォーラム投稿と一緒に、すべてのsoundexデータを含むsoundex_postを保存します。検索が実行されると、すべての検索用語がsoundexeされ、soundexフィールドに対してLIKE操作が実行されます。
デザイン2
正規化します。すべてのsoundexコードは、新しいテーブルtblSoundexCodesに保存されます。次に、テーブルtblForumPostSoundexCodesがあります。
ID | Post_ID | SoundexCode_ID | カウント
次に、soundexが検索されたら、SoundexCode_ID= nであるすべてのPost_IDを単純に引き出します。
方法2はかなり高速になりますが、維持するのがはるかに難しくなることを修正しますか(つまり、人々が投稿を編集する場合)。