티스토리 뷰
다같이 계속 하다보니 서로 사는얘기하는 빈도도 늘어나는 것 같다~ ㅋㅋ
다같은 취준생 입장이다 보니 공감대 형성이 잘 되는 것 같아서 좋다.
이번에 나는 preparedstatement 와 statement차이점에 대해 정리하였다.
우리의 애플리케이션에서 PreparedStatement는 어떻게 동작하고 있는가 | Notion
이 글의 목적:
www.notion.so
사실 이 부분까지 깊게 볼 일이 없어서 잘 모르는 부분이긴 했다.
하지만 평소에 사용하는 db io와 연관되어 있어서 중요한 부분이라고 생각이 들었다.
가장 최근에 이 용어를 접한건 jdbc batch write 부분을 개선하면서 접했다.
어떤부분인가하면
아래사진처럼 대용량 필드 쿼리를 만들때 아래처럼 PreparedStatement 인덱스를 직접 증가시키며 매핑했어야 됐다.

이부분에 대한 해결책은
https://www.notion.so/Batch-Insert-35dfa15530f781b7a7bef1e50e483825
대량 필드 Batch Insert 매핑 개선 | Notion
문제
same-robin-1ff.notion.site
이렇게 정리했다.
본론으로 돌아와서 내가 정리한 블로그 내용의 핵심은
쿼리문 생성과 io 작업을 줄이기 위해 캐시를 사용하는데 이 부분을 최적화 하기위해 관련 파라미터들을 true 설정해야 좋다는 것이었다.
ㅈㅎ님은
mysql db x-lock의 순서와 관련한 칼럼을 소개해주셨다.
fifo방식으로 락이 풀릴까에 대한 궁금증이 있었는데 이 부분은 fifo가 아닌 cats 알고리즘에 의해 작동되었다.
cats는 Contention-Aware Transaction Scheduling의 약자로
해당 트랜잭션이 블로킹하고 있는 트랜잭션 수에 따라 가중치를 할당해 대기 우선 순위를 지정한다.
이 부분에 대해서는 생각해본적이 없었는데 새로 알게되어 재밌었다.