2009-09-24 1 views
0

특정 탐색 탭을 클릭 할 때 기록하는 테이블이 MySQL dB입니다. 매번 마지막 항목을 소프트 삭제하고 새 항목을 삽입합니다. 소프트 삭제의 이유는 분석 목적을위한 것이기 때문에 시간이 지남에 따라 언제 어디서 사용자가 클릭하는지 추적 할 수 있습니다. 소프트 항목과 새 항목의 비율은 9 : 1이며 테이블 크기는 현재 약 20K이지만 빠르게 증가합니다.MySQL에서 소프트 삭제 된 행을 삭제하면 어떤 이점이 있습니까?

내 질문은 : 소프트 삭제 항목을 삭제하면이 테이블과 관련된 모든 쿼리를 최적화하는 데 도움이 될 것이라고? 현재 4 개의 테이블을 결합하고 새로운 항목 만 필요로하는 순간이 있습니다. 소프트 삭제에 대한 분석은 백업 복사본에서 수행 될 수 있으므로 프로덕션 dB에서 이러한 행이 필요하지 않습니다.

+0

"clicks_history"와 같이 필요없는 데이터를 다른 테이블에 넣으십시오. –

답변

0

분석의 모든 쿼리에서 테이블의 90 %가 제외되어 성능에 영향을 미칠 가능성이 가장 높습니다. 인덱스가 소프트 삭제 된 행이 자체 테이블에있는 경우보다 크거나, 디스크 머리가 더 큰 거리를 탐색해야하므로 디스크 액세스가 테이블 1/10 크기보다 비쌉니다.