결과만 보고 어느부분이 맞다 아니다를 판단하기엔 좀 섣부른 감이 있습니다.
즉 배가 아프다는 상황 하나만으로 장이 문제인지 위가 문제인지 판단하기 힘든것 처럼요.
10만개 insert 하는데 elapsed time을 12분이라고 하셧는데...
제 경험에 비춰보면 그것이 DB문제인지, 응용 App 문제인지, 또는 network 문제인지 여러 요인들은 다 봐야합니다.
만약 제가 질문자라고 물으신다면.. 전 허접하니깐 divide and conquer... :-)
우선 먼저 DB 자체내부에서 10만 insert를 해보겠습니다. -> 이 결과 12분이 나오면 그 이후에는 DataBase 쪽을 살펴 보셔야 되겠구요.
(insert하는 테이블에 column 갯수와도 또 index 와도 관련이 될 수 있는 부분이기에..)
DB 자체에서는 순식간인데 ResultSet만 받아오면 느리다 싶으면 응용 APP를 의심해 보시는게.....
autocommit false 재확인해보시기 바랍니다. 그리고... jdbc 드라이버 어딘가에 설정하는 부분이 있거나...
프로그램 내부에서 자동으로 commit 하는 부분 있는지 확인하시고요...
여러번 테스트 해보시라는 말밖에 못하겠네요... 100~200개 1초 안 걸리는 경험으로 봐서는... 잘 모르겠네요.
음. 답변하기 어려운 부분이 있군요.
결과만 보고 어느부분이 맞다 아니다를 판단하기엔 좀 섣부른 감이 있습니다.
즉 배가 아프다는 상황 하나만으로 장이 문제인지 위가 문제인지 판단하기 힘든것 처럼요.
10만개 insert 하는데 elapsed time을 12분이라고 하셧는데...
제 경험에 비춰보면 그것이 DB문제인지, 응용 App 문제인지, 또는 network 문제인지 여러 요인들은 다 봐야합니다.
만약 제가 질문자라고 물으신다면.. 전 허접하니깐 divide and conquer... :-)
우선 먼저 DB 자체내부에서 10만 insert를 해보겠습니다. -> 이 결과 12분이 나오면 그 이후에는 DataBase 쪽을 살펴 보셔야 되겠구요.
(insert하는 테이블에 column 갯수와도 또 index 와도 관련이 될 수 있는 부분이기에..)
DB 자체에서는 순식간인데 ResultSet만 받아오면 느리다 싶으면 응용 APP를 의심해 보시는게.....
하지만 경험상 저라면 아마도 mysql jdbc driver를 믿을것 같습니다. :-)
--오늘도 For() 와 If()로 나의 하루는 시작되고 끝난다.
--오늘도 For() 와 If()로 나의 하루는 시작되고 끝난다.
autocommit false
autocommit false 재확인해보시기 바랍니다. 그리고... jdbc 드라이버 어딘가에 설정하는 부분이 있거나...
프로그램 내부에서 자동으로 commit 하는 부분 있는지 확인하시고요...
여러번 테스트 해보시라는 말밖에 못하겠네요... 100~200개 1초 안 걸리는 경험으로 봐서는... 잘 모르겠네요.
-----
안녕하세요 소프트웨어 공학센터 장원석 책임입니다.
http://www.software.kr
Bug Report를 보다가
Bug Report를 보다가 이와 관련된 벤치마킹및 patch 테스트를 하신 마크 매튜란 분이 있네요.
http://bugs.mysql.com/bug.php?id=41532
http://www.jroller.com/mmatthews/entry/speeding_up_batch_inserts_for
--오늘도 For() 와 If()로 나의 하루는 시작되고 끝난다.
--오늘도 For() 와 If()로 나의 하루는 시작되고 끝난다.
KLDP 검색.
검색은 힘이다.
http://kldp.org/node/95301
thread 와 connection pool 쓰시고, resultset array 로 준비해놓고 for do ... , JVM 메모리옵션 확인하시고, MySQL Server 쪽은 iostat, conf 확인하세요.
구글패치는 진리입니다.
댓글 달기