2013-01-24 4 views
1

Thinking Sphinx를 사용하여 43,000 개의 레코드가있는 단일 테이블을 인덱싱합니다. 색인을 생성하려고하면 프로세스가 매우 느리게 실행되어 36,000 회 이후에 고정됩니다.인덱싱하는 동안 스핑크스가 응답하지 않는다

데이터에 문제가있는 것으로 가정하고 어떤 인덱스가 문제를 일으켰는지 알아 내려고했습니다. 11 개의 색인을 제외한 모든 색인을 제거한 후에도 오류가 계속 표시됩니다. 그러나 여기에 논점이 있습니다 : 어떤 단일 색인도 범인이 아닌 것처럼 보입니다. 마지막 11 개 중 하나를 제거하면 프로세스가 중단되지 않고 완료됩니다. 다시 추가하면 문제가 다시 발생합니다. (비록 내가이 인덱스 중 하나를 제거하면 프로세스가 여전히 39,000에서 많이 느려지는 것을 알았지 만)

그래서 지금 당황 스럽습니다. 나는 램과 디스크 공간을 많이 가지고 있기 때문에 문제가되지 않습니다. sql_range_step을 15000으로 설정하고 mem_limit를 2047M으로 설정했습니다. 아무것도 도움이되지 않습니다.

define_index do 
    indexes :email 
    has :id, :as => :code 
    has :premium_school_id 
    has :current_employer_account_id 
    has :years_experience_id 
    has :user_status_id 
    has practice_areas(:id), :as => :practice_area_ids 
    has languages(:id), :as => :language_ids 
    has preferred_employer_types(:id), :as => :preferred_employer_type_ids 
    has geographical_regions(:id), :as => :geographical_region_ids 
    has workflow_events(:id), :as => :workflow_event_ids 
    end 

모든 아이디어를 환영합니다 :

다음은 인덱스 내 깎았 다운 목록입니다.

답변

0

Pat Allan은 최근 나에게 비슷한 질문을 던졌습니다. 도움이되는지 확인하기 위해이 글을 읽어야합니다.

기본적으로 has_and_belongs_to_many 관계 및 Thinking Sphinx가 결과 SQL을 생성하는 방식과 관련하여 많은 조인이있었습니다.

https://groups.google.com/d/msg/thinking-sphinx/CBdWy-RivaU/tBRlLci83IkJ

관련 문제