mysql에서 큰 조인을 수행 한 다음 결과 데이터를 처리하고 다른 테이블에 쓰려고합니다. 지금은 디폴트 mysql_store_result를 사용하고 있지만, 쿼리 실행 후 $ sth-> execute()를 실행하는 데는 약 20 분이 걸린다. mysql_use_result로 전환하고 싶다. 왜냐하면 한 번에 한 행에서만 동작하기 때문이다.Perl DBD :: mysql 'mysql_use_result'다른 테이블에 삽입하는 동안 사용할 수 있습니까?
그러나, 문서의이 부분은 날 귀찮게 :
이 속성은 mysql_store_result가보다는 mysql_use_result를 사용하여 드라이버를 강제로. 전자는 더 빠르고 더 적은 메모리를 소비하지만 다른 프로세스를 차단하는 경향이 있습니다. 이것이 바로 mysql_store_result가 기본값입니다.
나는 한 번에 한 행씩 작동 한 다음 결과를 배열에 저장하고 있습니다. 500 개 항목마다 별도의 테이블에 INSERT를 수행합니다. mysql_use_result 루프 내에서 이렇게해도 괜찮은가요? INSERT를위한 새로운 DB 핸들러를 정의한다면 어떻게해야할까요?
마지막 줄 그냥 날 더욱 궁금합니다. 내가 읽고있는 테이블에 쓰지 않고있다. –
당신은 아니지만 누구입니까? 어쨌든 mysql 페이지에는 다른 것들을하기 위해 별도의 연결이 필요하다는 것이 분명해진다. – ysth
나는 그냥 가서 시도해 보겠다. 나는 당신을 대답으로 표시 할 것입니다. –