나는 약 1 만명의 사용자와 웹 응용 프로그램이 있습니다. 해당 응용 프로그램의 거의 모든 웹 페이지는 GetUser() 메서드를 호출하여 (활동 스트림의 이름과 기타 사용자 정보를로드합니다). 지금은 각 호출에 대해 데이터베이스를 때리고, 메모리에있는 모든 사용자를 캐싱하고 Linq를 사용하여 검색 결과 또는 GetUser()를 가져 오는 것을 생각하고 있습니다.
내 유일한 문제는 메모리에있는 모든 사용자를 캐싱하는 것이 좋습니다. 내 RAM을 낭비하고 싶니? 개인적으로 RAM에서 가져 오는 것이 DB에서 가져 오는 것보다 훨씬 빠르다고 생각합니다 (DB가 최적화되고 인덱싱 되더라도).
캐시 유효성 검사/업데이트/등을 이미 처리했음을 유의하십시오.
stackoverflow는 모든 사용자를 캐시합니까?
웹 팜입니까? – Paparazzi
http://stackoverflow.com/questions/11124273/linq-performance-for-in-memory-collection/11124548#11124548 –
사용자 데이터의 양은 어느 정도입니까? 사용자 이름과 몇 가지 다른 필드 일 경우이를 인증 쿠키로 직렬화 한 다음 필요한 경우 DB에서 전체 사용자 데이터를로드하는 것을 고려할 수 있습니다. – Nathan