나는 상점 위치 데이터이며, 일부 점포는 1500 개 매장을 가지고 있으며 일부는 20,000 매장이확대됨에 필터링
일부 매장은 50 개 매장이 속성 복잡한 XML 객체의 그룹을 가지고 .
내가 자바의 목록을 만들려는 나를 매장 위치
가장 중요한 필터는 위도/경도 약 위도/경도 및 기타 데이터로 매장 위치를 필터링 할 수있는 상점에 대한 개체; (40.146364, -75.406188)와 (40.228694, -75.491295) 사이의 모든 상점을 최대 및 최소 위도와 최대 및 최소 길이로 찾을 필요가 있습니다.
중복 위도/경도 값은 다음과 같습니다.
나는 내가 필터링하는 데 사용하는 몇 가지 주요 명시 적 특성을 가진 개체를 만들 거라고 생각 허용 (을 같은, 긴 저장 유형 코드 LAT)와 전체 XML의 문자열
나는 생각했다 오브젝트는 ArrayList 또는 다른 유형과 같은 Collection에 있으며 키는 Lat/long의 String입니다.
컬렉션을 신속하게 필터링하는 것이 중요합니다. 그것은 하루에 수백만 번 발생할 것입니다. 컬렉션 생성은 시작시 발생하며 필터가 빠르면 성능이 떨어질 수 있습니다.
위도/경도 필터는 매우 높은 특이성을 가지고 있습니다. 1500 개의 상점 위치를 갖는 한 예는 보통 50 개 이하의 상점 위치를 리턴합니다.
나는 Collection을 반복하고 lat/long 키를 파싱 할 수 있다고 생각했습니다. 위도/경도가 원하는 범위 내에 있으면 객체를 가져 와서 덜 구체적인 검색 기준을 필터링합니다.
쿼리 수가 많고 동일한 쿼리가 거의 반복되지 않기 때문에 데이터베이스를 직접 쿼리하는 것은 좋은 생각이 아닙니다. DB 캐싱은 각 쿼리의 매개 변수가 달라지기 때문에 발생하지 않습니다 (위도/경도는 소수점 이하 5 자리). 컬렉션을 통해 Chugging한다는 것은 DB에서 App 서버로로드를 이동시키는 것을 의미하지만 Oracle 라이센스 및 클러스터링은 많은 AWS 또는 Tomcat 인스턴스의로드 균형 조정보다 훨씬 비싸고 복잡합니다.
그룹의 구현에 대한 아이디어 요구 사항 및 제약 조건?
나는 당신이 설명한 것을 할 계획입니다. 내가 뭘 알고 싶습니다 사람이 무엇을 어떻게 향상시킬 것입니다 제안을 가지고 정보를 저장하려는 및 검색 기준과 일치하는 결과 집합을 필터링 할 수 있습니다 –