2010-07-26 6 views
1

myBB에서 IPBoard (변환은 PHP 스크립트를 통해 수행됨)로 포럼을 변환하고 있지만 변환해야하는 게시물이 4 백만 개가 넘으며 그 중 약 10 시간이 소요됩니다. 현재 속도. 나는 기본적으로 무제한의 RAM과 CPU를 가지고 있는데, 내가 알고 싶은 것은 어떻게이 프로세스를 빠르게 할 수 있는가? 이 한 프로세스에 엄청난 양의 메모리를 할당 할 수있는 방법이 있습니까? 도움 주셔서 감사합니다!포럼 변환 속도 향상

답변

0

변환 방법은 확실하지 않지만 SQL 파일을 가져 오는 경우에는 여러 파일로 분할하여 동시에 가져올 수 있습니다. 도움이 되길 바랍니다.

+0

변환은 한 번에 1500 개의 게시물을 변환하는 PHP 스크립트를 통해 수행됩니다. – YCMaker

0

이미 파일을 변환했다고 말하면, MySQL 콘솔에 액세스 할 수있는 경우 가져 오기에 대해 MySQL Load Data In FIle을 조사해야합니다. 이렇게하면 원본 명령을 통해 SQL 문을 실행하는 것보다 훨씬 빠르게 데이터가로드됩니다.

파일에이 파일을 저장하지 않은 상태에서 파일을 변환 스크립트에 저장하는 것이 좋습니다 (시간 제한을 0으로 설정하여 실행 허용). 해당 데이터로드 명령을 사용하여 데이터를 삽입/업데이트하십시오.

+0

아쉽게도 변환은 PHP 스크립트를 통해 수행됩니다. 기본적으로 스크립트를 빠르게 실행하는 방법이 있는지 알고 싶습니다. – YCMaker

+1

모든 변환을 파일로 저장 한 다음 데이터를로드하는 것 외에는 그렇게 생각하지 않습니다. 그러나 스크립트를 게시하면 스크립트를 최적화하는 데 도움이 될 수 있지만 가능한 한 최적의 스크립트인지 확인해야합니다. 그러나 MySQL DB에서 여러 개의 단일 쿼리를 실행하는 것은 일반적으로 속도가 느립니다. 확장 삽입을 통해 입력하거나 파일을 통해로드 할 수있는 속도가 훨씬 빨라졌습니다. –

1

더 빨리 실행되는 스크립트를 얻지 못할 것입니다. 더 많은 메모리를 제공함으로써 한 번에 더 많은 게시물을 처리 할 수 ​​있습니다. php.ini 파일의 memory_limit을 변경하여 사용 가능한 메모리 양을 변경하십시오.

한 번에 하나의 포럼을 수행하도록 스크립트에 지시 할 수 있습니다. 그런 다음 한 번에 여러 사본을 실행할 수 있습니다. 이것은 데이터베이스 테이블과 대화하는 방법과 스크립트가 이것을 허용하도록 작성되었는지에 따라 제한 될 것입니다. 목표 테이블을 잠그거나 원본 테이블에서 미친 듯이 오래 읽는 것과 같은 사기성이있는 작업을 수행 할 수 있습니다. 어쨌든 모든 것이 느려지 지 않으면 서 한 번에 3 ~ 4 회 이상 달리기는 어렵습니다.

스크립트를 개선하는 것이 가능할 수도 있지만, 두 포럼의 데이터베이스 형식의 내부를 학습하는 것은 며칠의 노력 일 것입니다. IPBoard에 대한 포럼에서 물어 보셨습니까? 누군가 당신이하려는 일에 경험이있을 수도 있습니다.