2013-05-09 3 views
0

symfony1에서 Excel 파일에서 수천 개의 레코드를로드하고 스크립트에서 평가 한 후 최종적으로이를 MySQL 데이터베이스에 삽입하는 PHP 응용 프로그램을 개발했습니다. 스크립트가 많이로드되는 것을 보았습니다. 난 교리를 사용하여 1 거래와 데이터를 삽입합니다.MySQL에 수천 개의 레코드를로드하는 접근 방식

내 질문은 :

나는 ORM을 사용해야합니다 아니면 작업을 삽입하는 원시 SQL을 사용해야합니까? 그 (것)들 사이에서 어떤 성과가 관련 있는가?

메모리를 적게 소비하려면 CSV로 Excel 파일을 변환해야합니까?

다른 작업을 위해 특별히 다른 스크립팅 언어와 같은 파일을로드해야합니까? 파일 크기는 10MB에서 50MB 사이입니다.

감사합니다.

+0

이 옵션이 맞는지 잘 모르겠지만 보통 Excel 시트를 사용하여 모든 삽입 문을 Excel 시트의 필드에 작성합니다. 다음 모든 수식을 복사하는 페이지 아래로 수식을 복사합니다. 그럼 그냥 복사하여 mysql workbench에 붙여 넣고 실행 시켜라. 수식이 있으면 다른 Excel 시트로 복사 할 수 있습니다. 꽤 빠릅니다. 어쩌면 옵션이 아닐지도 모르겠다. –

+0

문제는 응용 프로그램의 자동화 된 솔루션에서 사용자가 파일을 업로드하고 확인을 기다리는 것이라고 생각하기 때문에 해결책은 나에게 맞지 않을 것이다. – mauro

+0

phpmyadmin에서 Excel 기능을 가져올 수 있습니다. 어쩌면 코드를 해킹하여 그들이 어떻게했는지 볼 수 있습니다. –

답변

1

마우로 (Mauro)는 애플리케이션에 친숙한 인터페이스를 만들어 데이터베이스에 레코드를 가져올 수 있습니다. 그러나 원시 SQL을 사용하는 것은 확실히 그렇게하는 가장 좋은 방법입니다. PHP를 통해 시스템 자원을 조작 할 수 있습니다. 나는 그것이 그것을위한 가장 좋은 방법이라고 생각

<?php 
shell_exec("mysql -uUSER -pPASSWORD -e 'YOUR SCRIPT TO IMPORT THE DATA HERE'"); 
... 
OR 
<?php 
shell_exec("mysqlimport -uUSER -pPASSWORD 'YOUR CRITERIA HERE'"); 
... 

: 파일의 경로를 가지고 후에는 같은 시스템에 임의의 명령을 실행할 수 있습니다 (I는 CSV를 사용하는 것이 좋습니다 것입니다). 우리가 당신을 어떻게 분류하는지 알려주십시오!

+0

고마워요! 나는 ORM과 PHP 함수를 만드는 데 전적으로 어리석은 짓을했습니다! 난 원시 SQL로 변경하고 CSV로 엑셀을 변환하고 훨씬 더 빨리 전에보다 30 메가 바이트 파일을로드! :디 – mauro