2012-06-05 4 views
4

MySql을 사용하여 PhpMyAdmin을 관리하는 테이블이 있습니다. 현재 약 960,000 개의 행에 있습니다.큰 MySql 테이블 내보내기

나는 주간을 의미하는 Excel에서 데이터를보기를 좋아하는 보스가있어 Excel로 데이터를 내 보내야합니다.

이 작업을보다 효율적으로 수행 할 방법을 찾고 있습니다. 테이블 전체를 한 번에 실제로 수행 할 수 없으므로 시간이 초과되었습니다. 그래서 나는 테이블을 작은 쿼리로 덩어리로 묶어서 그런 식으로 내보냈습니다.

내 데이터베이스에 직접 엑셀 (및 액세스) 연결 시도했지만 동일한 문제가; 그것은 시간 초과됩니다. 연결 제한을 연장 할 방법이 있습니까?

답변

3

솔직히 말해서이 데이터 크기의 경우, mysqldump를 실행 한 다음 다른 위치에 설치된 다른 MySQL 사본으로 테이블을 가져 오는 것이 좋습니다. 어쩌면이 작업 전용 가상 머신에서 가져올 수 있습니다. 거기에서 원하는 시간 제한을 설정할 수 있으며, 프로덕션 데이터베이스의 리소스 제한에 대해 걱정하지 않아도됩니다. Unix 기반 OS에서 nice을 사용하거나 Windows 기반 시스템에서 우선 순위를 처리하면 프로덕션 시스템에 큰 영향을 미치지 않고이 작업을 수행 할 수 있습니다.

또는 프로덕션 데이터베이스의 set up a replica을 사용하여 거기에서 데이터를 가져올 수 있습니다. 프로덕션 시스템에서 다양한 테이블 또는 전체 데이터베이스를 복제하는 소위 "보고 데이터베이스"를 갖는 것은 대용량 환경에서 실수로 프로덕션 데이터베이스를 실수로 다른 사람의 번호를 가져 오지 않도록 보장하는 일반적인 방법입니다. 추가 이점으로서, 상사를 위해 데이터를 가져 오기 전에 mysqldump 백업이 완료 될 때까지 기다릴 필요가 없다. 당신은 즉시 그것을 할 수 있습니다.

1

행이 너무 많지 않습니다. 데이터를 CSV 파일로 내보내려면 쿼리를 실행하십시오.

SELECT column,column2 INTO OUTFILE '/path/to/file/result.txt' 
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
    LINES TERMINATED BY '\n' 
    FROM yourtable WHERE columnx = 'çondition'; 
8

사장님 Rain Man입니까? 그는 단지 '정보'를 원시 데이터에 두는가?

아니면 그가 정말로 필요한 것이 무엇인지 묻지 않고 Excel에서 기능을 구축합니까?

한 시간 동안 앉아서 그가 실제로 데이터로 무엇을하는지보십시오. 어떤 질문을하고 있습니까? 어떤 패턴이 (수동으로) 감지되고 있습니까? 해당 정보를 찾아 모니터링/경고 시스템에 연결하는 실제 도구를 작성하십시오.

또는 새 보스를 얻으십시오. 진심으로. 내가 그렇게 말한 걸 너는 말할 수있다.

+3

나는이 답변에 투표하지 않겠다. 그러나 이것은 실제로 훌륭한 대답이다. 좋은 측면 생각! – Mauro

관련 문제