트래픽이 몰릴때 로그를 살펴보면
아래와 같은 쿼리가 있는 곳에서 대부분 lockwait 나 lock획득을 못하는 지연이 발생되는데요
기술적으로 원인을 잘모르겠습니다.
쿼리 예시)
UPDATE PRODUCT
product_ea = product_ea - #{param_ea}
WHERE product_code = 'CODE1234';
혹시나 해서 저 product_ea값을 아래와 같이 미리 계산해서 update에 적용하니
문제점이 해결된거 같기도 한데요.
<selectKey keyProperty="preProductEa" resultType="java.lang.Integer" order="BEFORE"> SELECT IFNULL(product_ea , 0) + IFNULL(#{param_ea}, 0) FROM PRODUCT WHERE product_code = 'CODE1234'; </selectKey>
UPDATE PRODUCT
product_ea = #{preProductEa}
WHERE product_code = 'CODE1234';
업데이트 구문에서 이런부분이 문제가 되는 이슈가 있을까요? ( MYSQL )
oracle에서는 별문제 없었던거 같기도 하고.
조언좀 부탁드립니다