나는 (결과와 관련하여) 다소간 좋은 쿼리가 있지만 처리하는데 약 45 초가 걸립니다. GUI에서 데이터를 표시하기에는 너무 길다.
그래서 내 요구는 훨씬 빠르고 효율적인 쿼리를 찾는 것입니다. (몇 밀리 초 정도의 것이 좋을 것입니다.) 내 데이터 테이블에 ~ 2,619,395 개의 항목이 있고 여전히 커지고 있습니다.mysql 쿼리 - 거대한 테이블에 대해 기존 MAX-MIN 쿼리를 최적화합니다.
스키마 다음 exportValue 항상 exportValue 내 경우에는 실제 절대 값
-
num | station | fetchDate | exportValue | error 1 | PS1 | 2010-10-01 07:05:17 | 300 | 0 2 | PS2 | 2010-10-01 07:05:19 | 297 | 0 923 | PS1 | 2011-11-13 14:45:47 | 82771 | 0
설명
- 모든 ~ 15 분 테이블에 10 개의 새로운 항목이 기록됩니다. 012 몇 가지를 작성
- :
select YEAR(fetchDate), station, Max(exportValue)-MIN(exportValue) from registros where exportValue > 0 and error = 0 group by station, YEAR(fetchDate) order by YEAR(fetchDate), station
출력 : 거기에
Year | station | Max-Min 2008 | PS1 | 24012 2008 | PS2 | 23709 2009 | PS1 | 28102 2009 | PS2 | 25098
내 생각 3,516,
- 오류가 적절한 작업 역
근무 쿼리에 대한 단순한 지표이다 같은 문 사이의 검색어 ' 2008-01-01과 2008-01-02 사이 'MIN (exportValue)을 가져오고 2008-12-30과 2008-12-31 사이에 MAX (exportValue) 가져 오기 - 문제 : 많은 쿼리와 지정된 시간 범위에 데이터가없는 문제 (데이터가있을 것이라는 보장이 없음)
추가 정보 :
나는 자바 응용 프로그램에서 쿼리를 사용하고 있습니다. 즉, 필요한 경우 결과 세트에서 일부 후 처리를 수행 할 수 있습니다. (JPA 2.0)
도움/접근 방식/아이디어는 매우 높이 평가됩니다. 미리 감사드립니다.
인덱스를 작성해 주셔서 감사합니다. 나는 그것에 관한 좀 더 많은 정보를 찾기 위해 구글을 사용했다 -> http://www.sitepoint.com/optimizing-mysql-application (누군가가 관심이 있다면). 내 쿼리가 5 초 이내에 처리됩니다. 불행히도 오직 phpMyAdmin의 SQL 콘솔을 사용할 때만 JPA 2.0으로 Java에서 쿼리를 처리 할 때가 아닙니다 :/(하지만 그걸 살펴볼 것입니다) – RonH