데이터 묶음 (한 번에 약 500k 개의 레코드)을 삽입해야하는 데이터베이스가 있습니다. 나는 더비로 테스트를하고 있었고,이 많은 레코드들에 대해 약 10-15 분의 삽입 시간을 보았습니다 (나는 자바에서 배치 삽입을하고있었습니다).자바 대형 데이터베이스 삽입
이 시간이 느린 것으로 보입니까 (평균 노트북에서 작동합니까?)? 그리고 속도를 높이기위한 접근법이 있습니까?
덕분에,
제프
데이터 묶음 (한 번에 약 500k 개의 레코드)을 삽입해야하는 데이터베이스가 있습니다. 나는 더비로 테스트를하고 있었고,이 많은 레코드들에 대해 약 10-15 분의 삽입 시간을 보았습니다 (나는 자바에서 배치 삽입을하고있었습니다).자바 대형 데이터베이스 삽입
이 시간이 느린 것으로 보입니까 (평균 노트북에서 작동합니까?)? 그리고 속도를 높이기위한 접근법이 있습니까?
덕분에,
제프
이번에는 매우 합리적인 것처럼 보였으며, 나는 관찰 한 시간과 일치합니다. 는 DBMS에
EDIT : 데이터베이스 트랜잭션은 디스크 I/O에 의해 제한되며, 랩톱 및 대부분의 하드 드라이브에서 중요한 번호는 디스크의 검색 시간입니다.
랩톱은 5400 rpm으로 느린 디스크를 사용하는 경향이 있습니다. 이 속도에서 탐색 시간은 약 5ms입니다. 레코드 당 하나의 검색 (대부분의 경우 과다 추정)을 가정하면 모든 행을 삽입하는 데 40 분 (500000 * 5 ms)이 걸릴 것입니다. 이제 캐싱 메커니즘과 시퀀싱 메커니즘을 사용하면 다소 줄어들지 만 문제가 어디서 발생하는지 확인할 수 있습니다.
나는 당연히 문제를 극도로 단순화하고 있지만, 내가 어디로 갈 것인지를 알 수있다; 데이터베이스가 순차 벌크 I/O와 동일한 속도로 수행 될 것으로 기대하는 것은 무리입니다. 레코드에 일종의 인덱싱을 적용해야하는데 시간이 오래 걸립니다.
이 테이블을 수행 인덱스를 많이 있나요? 이러한 인덱스를 업데이트하는 데 많은 시간을 소비 할 수 있습니다.
"코멘트"로 배치하는 경우 더 적합합니다. – Joset
색인이 2 개뿐입니다. –
그건 의미가 있습니다. 감사. –