데이터 분석 프로젝트의 일환으로 mysql 데이터베이스에서 장기 실행 쿼리를 발행 할 예정입니다. 내 미래의 행동 방침은 내가 얻은 결과에 달려있다. 나에게 아직 실행중인 SELECT 문에 의해 부분 결과가 생성되는 것이 유용 할 것입니다.장기 실행 쿼리 : 부분 결과 관찰 중?
이 방법이 있습니까? 또는 질의가 완료 될 때까지 기다렸다가 초반 만에 생성 된 결과를 볼 수 있습니까?
도움 주셔서 감사합니다 :)
데이터 분석 프로젝트의 일환으로 mysql 데이터베이스에서 장기 실행 쿼리를 발행 할 예정입니다. 내 미래의 행동 방침은 내가 얻은 결과에 달려있다. 나에게 아직 실행중인 SELECT 문에 의해 부분 결과가 생성되는 것이 유용 할 것입니다.장기 실행 쿼리 : 부분 결과 관찰 중?
이 방법이 있습니까? 또는 질의가 완료 될 때까지 기다렸다가 초반 만에 생성 된 결과를 볼 수 있습니까?
도움 주셔서 감사합니다 :)
일반적으로 부분적인 결과는 생성 될 수 없습니다. 예를 들어 GROUP BY 절이있는 집계 함수가있는 경우 첫 번째 행이 반환되기 전에 모든 데이터를 분석해야합니다. LIMIT 절은 출력을 계산 한 후에 적용되므로 도움이되지 않습니다. 어쩌면 구체적인 데이터와 SQL 쿼리를 제공 할 수 있습니까?
한 가지 고려해야 할 것은 테이블을 샘플링하는 것입니다. 일반적으로 코드를 작성할 때 반복 속도를 높이려면 데이터 분석에서 우수 사례입니다. 당신이 테이블 privelages을 만들 수 있고 경우 키 UNIQUE_ID와 UNIQUE_ID 거의 모든 데이터베이스에있는 숫자입니다
경우 일부 데이터 DATA_VALUE 일부 메가 거대한 테이블 X를 예를 들어
,
create table sample_table as
select unique_id, data_value
from X
where mod(unique_id, <some_large_prime_number_like_1013>) = 1
것 질의를 처리하기 위해 임의의 데이터 샘플을 제공하고 테스트/쿼리 결과의 속도를 향상시키기 위해 sample_table을 다른 테이블과 결합 할 수 있습니다. 샘플링 덕택에 쿼리 결과는 대략 얻을 수있는 것을 대표해야합니다. 참고로 modding하는 숫자는 소수 일 것입니다. 그렇지 않으면 올바른 샘플이 제공되지 않습니다. 위의 예제는 원래 크기의 약 0.1 %로 테이블을 축소합니다 (정확히 0.987 %).
대부분의 데이터베이스는 mod를 사용하는 것보다 더 나은 샘플링 및 난수 방법을 사용합니다. 문서 버전을 확인하여 사용 가능한 버전을 확인하십시오. 도움이
희망, McPeterson
그것은 당신의 쿼리가 무엇을하고 있는지에 따라 달라집니다. group by 또는 by order 또는 having 절을 가진 쿼리에 대해 발생할 수있는 결과를 생성하기 전에 전체 결과 집합을 가져야하는 경우 수행 할 작업이 없습니다.
그러나 지연의 원인이 클라이언트 측 버퍼링 (기본 모드) 인 경우 기본값 대신 데이터베이스 처리기의 속성으로 "mysql-use-result"를 사용하여 조정할 수 있습니다 "mysql-store-result". 이것은 Perl 및 Java 인터페이스에 해당됩니다. C 인터페이스에서 쿼리를 실행하는 함수의 버퍼링되지 않은 버전을 사용해야한다고 생각합니다.