0
我有會員包含超過30,000用戶。我試圖讓用戶使用他們的配置文件查找或搜索所有成員資格的用戶,我將通過將所有具有所需配置文件數據的用戶導入DataTable並開始從中進行選擇來實現此目的,但是這裏的問題是它需要年齡加載超過30000用戶,並得到他們的個人資料數據到一個DataTable 是否有任何類型的存儲,我可以預先加載裏面的會員用戶,而不是加載它,而用戶試圖搜索。ASP.NET成員..處理大量用戶的
我有會員包含超過30,000用戶。我試圖讓用戶使用他們的配置文件查找或搜索所有成員資格的用戶,我將通過將所有具有所需配置文件數據的用戶導入DataTable並開始從中進行選擇來實現此目的,但是這裏的問題是它需要年齡加載超過30000用戶,並得到他們的個人資料數據到一個DataTable 是否有任何類型的存儲,我可以預先加載裏面的會員用戶,而不是加載它,而用戶試圖搜索。ASP.NET成員..處理大量用戶的
而是裝載的全部30.000到內存中,你可以只執行對你的數據庫的搜索查詢。這將返回更少的行並具有更高的性能。 Membership類具有可返回分頁數據的方法FindUsersByName。
如果你真的想所有用戶存入存儲器看看HttpRuntime.Cache。如果將所有用戶加載到緩存中,則可以使用Linq To Objects查詢它們並獲得良好性能。
您可以填寫緩存在Application Autostart事件。緩存數據將始終在應用程序運行時加載。您可以使用SqlCacheDependency來確保您的緩存始終正確。
感謝您的回答。由於數據存儲類型的不同,從數據庫中選擇不會對我有用。 第二個方案是偉大的,但如何實現的遠程服務器上(我的服務器是GoDaddy的) –
這些都是所有的東西你可以從代碼做。只要你的項目沒有運行在webfarm上,你的緩存就可以在內存中。如果沒有,你可以把緩存放在它自己的數據庫中。 ASP.NET將爲您管理它,並且速度非常快(或將您的主機移動到Azure並使用它們的緩存http://msdn.microsoft.com/en-us/library/windowsazure/gg278356.aspx) –