2010-06-03 4 views
2

간단한 가져 오기 도구가 있는데, 꽤 큰 CSV의 각 줄을 거쳐 데이터베이스로 가져옵니다.PHP에서 큰 가져 오기 최적화하기

내 질문은 : 각 객체를 삽입하는 다른 메소드를 호출해야합니까 (DO 생성 및 삽입을 지시). 삽입 프로세스에서 삽입 프로세스를 하드 코딩해야합니까?

나는 두 번째 방법을 호출하는 것이 유익하다는 것을 알고 있지만 함수 호출이 비싸다고 계속 들었습니다.

당신은 어떻게 생각하십니까?

답변

4

많은 RDBMS 브랜드가 대량 가져 오기를 수행하는 특수 명령을 지원합니다.

은 한 번에 하나 개의 행을 삽입 선호한다 대량로드 명령은 일반적으로 적어도 한 단계 더 빠르게 실행되기 때문에 CSV 데이터 소스에서 가져올 수 있습니다.

+0

많은 고마워, 나는 그 생각조차하지 않았다 : - D 조 –

1

이 부분이 너무 중요하지 않다고 생각합니다. 벌크 삽입물을 고려하십시오. 최소한 거래를 사용하고 있는지 확인하고 삽입하기 전에 색인을 사용하지 않도록 설정하십시오.

1

PHP 코드보다 삽입 시간이 길어질 수 있으므로 중요하지 않습니다.

다른 사람들이 언급했듯이, 대량 삽입물은 훨씬 많은 이점을 제공합니다. 이러한 라인 레벨 최적화는 좋은 고급 최적화에 대해 눈을 멀게 할뿐입니다.

확실하지 않은 경우 두 가지 방법으로 간단한 타이밍을 수행하십시오. 알아내는 데 2 ​​분 이상 걸리지 않습니다.

일괄 올리기가 일부 메모리/시간/.... 제한에 도달하면 일괄 삽입을 만들기 위해 두 방법을 결합하는 것을 고려하십시오.

관련 문제