我正在研究ASP.NET MVC應用程序。這個應用程序被200個用戶使用。這些 用戶不斷(每5分鐘)從100,000個項目列表中搜索項目(該列表將每個月增加1-2%)。此100,000個項目的列表存儲在SQL Server表中。通過SQL表中100,000條記錄進行通配符搜索的最佳優化技術是什麼
搜索是一個通配符搜索
如:
Select itemCode, itemName, ItemDesc
from tblItems
Where itemName like '%SearchWord%'
的搜索需要非常快,因爲主要業務依賴於搜索和選擇的項目。
我想知道如何獲得最佳性能。搜索結果必須立即出現。
我曾嘗試 -
我試圖預加載整個10萬條記錄到內存緩存,然後從內存緩存讀取。我試圖避免每次搜索對SQL Server的調用。
這需要很多時間。每次用戶搜索項目時,我們都會從內存緩存中檢索100,000條記錄,然後再進行搜索。這比直接的SQL搜索多花費2-3倍的時間。
我想這樣做在SQL Server表直接進行搜索,但在一個時間限制的結果,只有50條記錄(使用前50名)
這似乎是好了,但仍然沒有在那裏附近的表現,我們正在尋求
我想聽聽可能的解決方案和任何文章/代碼的鏈接。
在此先感謝
你能否詳細說明你的應用程序的架構多一點?當執行關鍵字搜索時,它是一個確切的關鍵字還是通配符/變形?作爲一般規則,您應該將搜索工作留給數據庫。 – Phill
這是一個*全文目錄*搜索或「LIKE」? –
Hi Phill,它將成爲通配符搜索。 – NewUnhandledException