스포츠 토토모듈이 의도되었습니다 쿼리 최적화 문제의 솔루션은 여행 세일즈맨 문제 (TSP). 가능한 쿼리 계획은 다음과 같이 인코딩됩니다 정수 문자열. 각 문자열은 하나의 조인 순서를 나타냅니다 다음 쿼리와의 관계. E. g., 쿼리 트리
/\ /\ 2 /\ 3 4 1
정수 문자열 '4-1-3-2'로 인코딩됩니다. 관계 '4'와 '1', 그런 다음 '3', 그런 다음 '2', 여기서 1, 2, 3, 4는 내 관계 ID입니다.PostgreSQLOptimizer.
의 일부스포츠 토토모듈 D. Whitley의 Genitor 알고리즘에서 조정되었습니다.
의 특정 특성스포츠 토토구현PostgreSQLare :
a 사용정상 상태 ga(교체 전체 세대가 아닌 인구의 개인에게 가장 적합합니다 교체)는 개선 된 쿼리를 향한 빠른 수렴을 허용합니다 계획. 이것은 합리적으로 쿼리 처리에 필수적입니다 시간;
사용법가장자리 재조합 크로스 오버가장자리 손실을 유지하는 데 특히 적합합니다 의 해결책은 낮음TSPaga;
유전자 운영자로서의 돌연변이는 더 이상 사용되지 않도록 법률을 생성하려면 수리 메커니즘이 필요합니다TSP투어.
the스포츠 토토모듈 허용PostgreSQLQuery Optimizer to 비 exhaustive를 통해 대규모 결합 쿼리를 효과적으로 지원합니다 찾다.
유전자 알고리즘을 개선하기 위해서는 여전히 작업이 필요합니다
매개 변수 설정. 파일백엔드/최적화/스포츠 토토/스포츠 토토_params.c, 루틴gimme_pool_size
andgimme_number_generations
, 우리는 a를 찾아야합니다
두 가지 경쟁을 만족시키기위한 매개 변수 설정에 대한 타협
요구 :
쿼리 계획의 최적 성
컴퓨팅 시간