검색은 우리 웹 사이트에서 가장 많이 사용되는 기능이며 검색 쿼리는 db에서 실행되는 CPU 사용량이 많고 복잡하며 빈번한 쿼리이므로 db 서버에서 과도한 CPU 사용이 발생합니다. db의 부하를 줄이기 위해 다양한 캐싱 전략을 검토했습니다. 지금은 ASP.NET 캐시를 사용하려고합니다.asp.net에서 Linq를 사용하여 캐시 쿼리
아이디어는 캐시에서 가장 자주/최근에 생성되거나 액세스 된 객체의 메모리 내장 DB를 가지고 linq을 사용하여 메모리 내 db를 검색하여 검색 결과를 얻는 것입니다. 내 생각은 사용자의 목록을 캐시 한 다음 linq을 사용하여이 목록을 쿼리하거나 수정하는 것이 었습니다. 그러나 List를 수정하거나 액세스하려고 시도하는 여러 스레드의 복잡성 때문에 다른 옵션이 필요했습니다.
목록을 캐싱하는 대신 개별 사용자 개체를 해당 ID를 키로 캐시하고 캐시를 시도하고 쿼리 한 것으로 생각됩니다. http://msdn.microsoft.com/en-us/library/system.web.caching.cache.aspx에서 캐시 확장 메서드 AsQueryable을 볼 수 있지만이게 무슨 뜻인지 모르겠습니다. 캐시는 키 값 쌍이므로 AsQueryable을 사용하여 키를 쿼리하고 사용자 개체 집합을 가져 오거나 사용자 개체를 쿼리하고 원하는 결과를 얻을 수 있습니까?
텍스트 검색이 아닙니다. 실제로 검색은 기본적으로 여러 개의 조인과 일부 사용자 정의 함수를 사용하여 쿼리를 느리게 만드는 쿼리입니다. 나는 Linq 접근 방식이 적어도 지금은 올바른 접근 방식이라고 생각합니다. 어쨌든 제안 해 주셔서 감사합니다. – shashi