나는 테이블 Calls
을 삭제 : messageType
, callId
및 lastModified
. 각 통화에 대한 동시 LOAD 데이터 INFILE 3 열이
열 messageType
및 callId
은 기본 키를 구성한다.
나는 다음 행을 삭제할 : 행이 종료 된 통화에 해당
- . CALL-STOP 메시지가 DB에 기록되면 호출이 종료됩니다.
- 4 시간 이후로 수정되지 않은 행 (예 :).
DELETE FROM Calls WHERE callId IN (SELECT * FROM (SELECT DISTINCT callId FROM Calls WHERE messageType=4 OR TIMESTAMPDIFF(SECOND,lastModified,NOW()) > 14400) AS tmp);
난 단지 테이블을 청소하는이 문을 사용
나는 다음과 같은 쿼리를 사용했다. 하지만 동시에 테이블은 LOAD DATA INFILE
을 사용하여 대용량 파일 (약 30000 행)에 의해 매우 빈번하게 (예 : 매초마다) 채워지고 실제로 데이터로드와 데이터로드만으로는 성능 차이가 있습니다.
성능을 향상 시키려면 어떻게해야합니까? SQL 삭제? DB 자체에?
정확하게 MySQL을 사용합니다.
감사
당신을 위해
'통화'테이블에서 사용하는 스토리지 엔진은 무엇입니까? – eggyal
@eggyal 새로운 테이블이기 때문에 사용할 스토리지 엔진을 선택할 수 있습니다. 어느 것이 좋습니다? –
아직 존재하지 않는 테이블의 성능 저하를 어떻게 확인할 수 있습니까? – eggyal