ASP.NET MVC アプリケーションに取り組んでいます。このアプリケーションは 200 人のユーザーが使用しています。これらのユーザーは、常に (5 分ごとに) 100,000 個のアイテムのリストからアイテムを検索します (このリストは毎月 1 ~ 2 % ずつ増加します)。この 100,000 項目のリストは、SQL Server テーブルに格納されています。
検索はワイルドカード検索です
例えば:
Select itemCode, itemName, ItemDesc
from tblItems
Where itemName like '%SearchWord%'
主な業務はアイテムの検索と選択に依存しているため、検索は非常に高速である必要があります。
最高のパフォーマンスを得る方法を知りたいです。検索結果は瞬時に表示される必要があります。
私が試したこと -
100,000 レコード全体を memcache にプリロードしてから、memcache から読み取ろうとしました。検索ごとに SQL Server への呼び出しを回避しようとしていました。
これには多くの時間がかかります。ユーザーがアイテムを検索するたびに、memcache から 100,000 レコードを取得して検索を実行しています。これには、直接の SQL 検索よりもほぼ 2 ~ 3 倍の時間がかかります。
SQL Server テーブルで直接検索を試みましたが、結果を一度に 50 レコードのみに制限しました (上位 50 を使用)。
これは問題ないように見えますが、求めているパフォーマンスにはまだほど遠い状態です
可能な解決策と記事/コードへのリンクを聞きたいです。
前もって感謝します