현재 추가 작업을 위해 많은 양의 데이터를 선택해야하는 응용 프로그램의 일부에서 작업 중이며 I/O가 제한되어 있으며 다음과 같은 작업. 내 생각은 이러한 모든 개체를 메모리에 있지만 압축 된 일련 번호를 갖게되었습니다. 문제는 이와 같은 객체에 액세스하는 것이 직접적인 데이터베이스 액세스보다 빠르며 좋은 아이디어인지 아닌지 여부입니다. (이 메모리 소비의 측면에서 feasble 인 경우 = 직렬화 된 형식은 일반 개체보다 적은 메모리를 사용)직렬화 및 압축 된 개체 유지 메모리 내
편집 2011년 2월 :
객체의 생성이 느린 부분이 아닌 데이터베이스 액세스 자체입니다. 모든 것을 메모리에 저장하는 것은 불가능하며 ehcache 옵션을 사용하여 "디스크 오버 플로우"옵션을 사용하면 데이터베이스에서 데이터를 가져 오는 것보다 실제로 속도가 느립니다. 표준 자바 직렬화도 사용할 수 없습니다. 그것은 또한 훨씬 더 느립니다. 기본적으로 내가 할 수있는 일은 아무것도 없습니다 ...
얼마나 "많은"인가? –
내 "테스트 케이스"에서 수천 개의 행이 30k 행입니다. 것은 1 ~ 30k 또는 그 이상이 될 수있는 ID (기본 키) 목록입니다. 처음에는 거대한 SQL IN Clause를 만들었습니다. 실제로는 수천 GB의 메모리를 동등하게 소비한다는 점에서 좋은 평가를 받았습니다. 이제 각 요소 분리를 선택합니다. 물론 그것은 부정적인 영향을 주었지만 메모리 사용량이 10 배 적은 것과 비교하면 꽤 작은 것입니다. 그것은 특별한 검색이므로 "빠름"이어야합니다. –
사용자 지정 serialization/deserialization을 시도 했습니까? –