웹서버와 디비서버 분리해서 사용중이고
스프링 부트 사용중입니다.
웹 서버 성능은 CPU Xeon E5-2673 v5 2.30GHz 2.29 GHz / RAM 8기가 입니다.
디비 서버 성능은 CPU Xeon E5-2673 v5 2.30GHz 2.29 GHz / RAM 16기가 입니다.
페이지를 넘길때 해당 페이지에서 작성된 문항값들을 저장하고 다음 작성할 문항을 불러오는데
작성된 문항 값을 저장할때
자바스크립트에서 arraylist 생성에서
["seq","name","code","result","기타값"]
["seq","name","code","result","기타값"]
["seq","name","code","result","기타값"]
["seq","name","code","result","기타값"]
["seq","name","code","result","기타값"]
이런식으로 20줄 정도 자바로 넘기면
자바에서는 그 리스트 그대로 mybatis mapper 에
파라미터로 던지고 mapper 에서 foreach
(insert into 디비명 SAVE_Result
(컬럼1,컬럼2,컬럼3,컬럼4컬럼5,컬럼6,컬럼7,컬럼8,컬럼9)
values
<foreach collection="list" item="item" separator=",">
(#{item.컬럼1},#{item.컬럼2},#{item.컬럼3},#{item.컬럼4},
#{item.컬럼5},#{item.컬럼6},#{item.컬럼7},#{item.컬럼8},#{item.컬럼9})
</foreach>)
먼저 무조건 딜리트로 한번 돌면서 기존에 값이 있던 없던 삭제하고 인서트로 똑같은 값을 다시 넣어요.
접속자 1명일땐 1초 이내로 빠르게 넘어가는데
동시접속자가 10명만 넘어가도 6초 10초 심지어 15초까지도 걸립니다.
해결 방안이 있을까요 ?