2012-05-25 2 views
6

한 번의 클릭으로 검색해야하는 수천 개의 레코드가 있습니다. 현재 그것은 결과를 매우 천천히 나에게주고 있으며, 나는 오랜 시간을 기다려야한다. 최대 절전 모드를 사용하여 이러한 결과를 검색하는 방법을 향상시킬 수 있습니까?Java에서 최대 절전 모드 성능을 향상시키는 방법은 무엇입니까?

선택 쿼리가있는 메소드가 매분 실행되는 경우가 있습니다. 이것은 Hibernate가 나에게 느린 결과를주는 곳이다. 나는 MySQL과 함께 최대 절전 모드를 사용하고있다.

+2

"문자열의 길이는 얼마나됩니까?"라는 말은 조금 있습니다. HQL이 무엇인지에 대해 더 자세한 정보가 필요합니다. 간단한 "where"절이 극적으로 속도를 높일 수 있습니다. – david99world

+0

캐싱을 사용하고 있습니까? (hibernate.cache.user_query_cache = true) – stzoannos

+0

데이터베이스에서 많은 양의 데이터를 검색하는 것은 단지 느려지거나, 최대 절전 모드 일 수 있습니다. 한 번에 수백 개의 행을 표시하여 검색하는 행의 수를 줄이십시오. 사용자는 동시에 10000 개의 행을 모두 볼 수 없으므로 많은 정보로 그 행들을 제공 할 필요가 없습니다. – dasblinkenlight

답변

6

일반적인 연습 2 레벨 캐시 및 쿼리 캐시를 가능하게하고 있다고 웹 페이지에 레코드를 표시하고 한 번에 기록의 일부를 검색 할 수있는 경우가 Pagination 갈 제안했다. 데이터가 db가 아닌 memmory에서 읽혀질 것입니다.

here

다른 것들에 대해

좋은 기사는 도움이 될 수 있습니다

1 인덱싱 - 당신이/순서를 검색 필드에 대한 인덱스를 구축해야 - - 어디서 주문 경우가이 향상시킬 수 있습니다 검색 속도 최대 10 배

2 비정규 화 - 많은 비정규 화가있는 경우 일부 비정규 화 (단일 테이블에 모두 넣기)가 도움이 될 수 있습니다. 그러나 이것은 다른 모든 것이 실패 할 때 최종 해결책이되어야합니다.

+0

대단히 감사 드리겠습니다. –

+0

선택 쿼리가있는 메소드가 매분마다 실행되는 경우가 있습니다. 이것은 절전 모드에서 느린 결과를내는 절전 모드입니다. –

+0

2 차 캐시와 쿼리 캐시를 사용하면 쿼리를 처음 실행 한 후에 엔티티가 채워집니다. 따라서 처음에는 느려질 수 있습니다. 그러나 다음에 캐시 된 값이 사용됩니다. 메모리에서 읽기가 더 빠를 것입니다. – alexey28

1

난 당신이 100

관련 문제