저는 1-2 백만 명의 사용자 기반으로 VB.NET에서 소셜 네트워킹 응용 프로그램을 작성하고 있습니다.소셜 네트워킹 웹 사이트 - 메모리에 '사용자 검색'을 구현하는 가장 좋은 방법은 무엇입니까 (SQL 없음)?
모든 사용자 데이터는 국가, 지역, 연령 등의 속성이 표시된 '사용자'개체 사전에 메모리에 저장됩니다. 메모리의 여러 사용자 속성에 대해 검색을 수행해야합니다. SQL을 사용하지 않습니다.
여러 속성에 대해 '사용자 검색'을 구현하는 가장 좋은 방법은 무엇입니까?
정보 나는 현재 (비 검색) 대부분의 조회가 사용자 ID를 통해 수있는 바와 같이, 괜찮 사전의 키와 같은 사용자 ID를 사용하고 추가. 여러 사전을 키로 다른 사용자 속성을 사용하는 색인으로 사용하는 것을 고려하고 있습니까? 나는 모든 사용자의 철저한 반복 검색을 피하려고 정말로 노력하고 있습니다.
Dictionary의 HashTable 구현이 성능 문제없이 1M 항목을 처리한다는 인상을 받았습니까? 어쨌든 검색 문제를 제쳐두고이 사실을 좀 더 조사해야 할 수도 있습니다. – Satellite
너무 많은 잠금을 유발하는 일부 공유 메모리에서 많은 업데이트를 만들려고 할 때 성능 문제가 발생할 것이라고 생각합니다. 그것을 분리하면 업데이트가 완료 될 때 전체 사용자 목록을 잠글 필요가 없습니다. – N0Alias
설명해 주셔서 감사합니다. 그것은 꽤 'write-light'응용 프로그램이지만, 이것은 실제로 문제가 될 수 있습니다. – Satellite