2012-03-28 4 views
2

표에 대한 일반 사이트 쿼리의 성능에 영향을주지 않으면 서 데이터베이스 테이블에서 무거운 처리/데이터 마이닝을 수행하는 가장 좋은 방법에 대한 일반적인 조언을 찾고 있습니다. 일부 계산에는 여러 테이블 조인이 포함될 수 있으며 복잡한 정렬 및 정렬이 필요합니다. 따라서 "더 나은 인덱스 사용"이 항상 해결책은 아닙니다.표에 영향을 미치지 않고 표에서 무거운 업무 처리 수행

이 질문은 구체적이지 않습니다. 나는 수년에 걸쳐 여러 번 나왔던 문제를 해결하기위한 일반적인 방법을 찾고 있습니다. 따라서 표시 할 특정 테이블 스키마, 표시 할 특정 쿼리가 없습니다. mysqldump를 사용하여 테이블을 처음으로 덤프 한 다음 다른 이름으로 테이블을 다시 가져온 다음 해당 임시 테이블에서 무거운 작업을 수행하는 것으로 생각했습니다. 내 시스템 관리자는이 아이디어를 싫어하기 때문에 이러한 유형의 문제를 해결하기 위해 사람들이 생각해 낸 다른 해결책을 찾고 있습니다.

+0

아마도 테이블의 복제본입니다. –

+0

복제. 테이블을 다른 서버에 복제하고 거기서 처리하십시오. 그것은 기본적으로 mysqldump를 사용하는 아이디어와 동일합니다. MySQL만이 모든 작업을 수행합니다. –

+0

@ N.B. 복제 작업을 수행중인 복제 데이터베이스가 생산 과정에서 사용되는 노예라면 괜찮습니까? 아니면 전체적으로 다른 데이터베이스를 사용해야 만 큰 처리가 가능합니까? – mellowsoon

답변

2

"heavy crunching"이 모두 읽기 전용이고 프로덕션 데이터에 다시 기록해야하는 작업을 수행하지 않는 경우 마스터/슬레이브 복제를 사용하고 모든보고 및 데이터 분석 요구에 슬레이브를 사용하십시오. 복제 링크는 슬레이브에 값을 최신 상태로 유지하며, 프로덕션 시스템을 제공하는 마스터의 속도를 늦추지 않고 원하는만큼의 부하로 슬레이브를 사용할 수 있습니다.

0

프로덕션 데이터베이스의 성능에 영향을 미치지 않으려면 이전에 다른 데이터베이스 서버에서 쿼리를 실행하는 유일한 방법이 있습니다.

전체 데이터베이스를 백업 한 다음 별도의 서버에서 복원합니다.

분명히 실시간 데이터를 분석하려는 경우에는이 작업을 수행 할 수 없습니다. 그러나 대부분의 분석을 위해서는 전날의 스냅 샷으로 충분합니다.

+1

프로덕션 데이터베이스를 다른 데이터베이스 서버로 이동하는 방법에 대해 궁금합니다. mysql 내로 가져 오는 mysqldump는 slooooooow이다. :) – mellowsoon

+0

SQL Server를 사용하면 비교적 쉽습니다. 전체 백업을 실행하십시오. 데이터베이스 백업 파일을 새 서버에 복사하십시오. 백업에서 데이터베이스를 복원하십시오. 가장 느린 부분은 백업 파일의 복사본입니다. 이것은 모두 데이터베이스 크기에 따라 다릅니다. –

관련 문제