나는 속도가 중요한 예측 다이얼러를 구축하고 있습니다. 번호를 다이얼하려면 테이블에서 고객 정보를 가져오고 pbx가 작동하도록 호출 파일을 작성하십시오.큰 테이블 구성 및 최적화
현재 각 지역 번호에 대한 표가 있으며 한 번에 하나의 지역 번호로 전화를 걸지만 여러 우편 번호로 연결된 지역을 기반으로 전화를 걸 모델로 전환하고 있습니다. 일부 지역 코드는 여러 우편 번호로 존재합니다. 각 테이블에는 매월 추가 된 새로운 번호가 있으며, 수백만 개의 전화 번호 목록과 비교하여 제거됩니다.
내 질문에, 어떻게이 데이터를 가장 효율적으로 구성해야합니까?
큰 테이블 하나는 생산성이 떨어지는 것처럼 보입니다. 우리는 수백만 건의 문질러 쓴 데이터를 기록하고 있습니다.
현재 나의 추론 방법은 가져 오기 및 스크러빙을 위해 지역 코드 테이블을 유지 한 다음 지역의 우편 번호에 대한 지역 코드 테이블을 검색하여 작성된 영역 테이블로 스크럽 된 레코드를 복사하는 것입니다.
현재 auto_incremented INT 기본 키, 고유 전화 번호 및 이미 호출되었거나 do-not-call 목록에있는 번호를 추적하는 상태로 테이블을 인덱싱합니다. 호출 파일을 작성할 때 레코드를 대기 상태로 표시 한 다음 호출이 완료되면 호출 방법에 따라 표시합니다. 따라서 각 호출에 대해 검색과 두 가지 업데이트가 있습니다.
검색은 지역 코드 표에서 특정 상태를 찾습니다. 업데이트는 레코드 ID를 기반으로 발생합니다.
질문의 성토는 다음과 같습니다. 우편 번호로 정리하고 상태로 검색하거나 지역 번호별로 정렬하고 상태 및 우편 번호로 검색하는 것이 더 빠릅니까? 아니면 지역 코드 테이블에서 지어진 지역을 설정할 때마다 새 테이블을 만드는 것이 더 나은 방법일까요?
어리석은 질문 인 것처럼 여겨지면 용서해주십시오. 저는 이것을 구축하면서 SQL을 가르쳐 왔으며, 데이터베이스 설계 및 성능의 미묘한 차이는 제 능력을 뛰어 넘었습니다.
테이블의 총 크기는 2 백만 행으로 늘어납니다.
2 백만 개의 행이 명확하게 편집 됨 – TaoJoannes
2 백만 행의 경우 조인은 느려집니다. 예를 들어 지역 번호로 검색하면 지역 코드가 거의 비교할 수 없습니다 (플래그를 사용하지 않고 필터링하면 좋을 것입니다. 뭔가에 의해 주문). –
큰 테이블 하나가 특정 시나리오에 적합 할 수 있습니다. 내 자신의 테스트에서, 좋은 SSD를 가진 좋은 서버/데스크탑은 당신에게 좋은 결과를 줄 것입니다. –