서론해당 포스팅을 작성하는 이유는 CAS에 대한 개념을 이해하고 좀 더 좋은 성능을 알아보기 위하여 작성한 글입니다. 기존 Lock 방식을 이용한 여러 동시성 제어 방식들에 대한 이해가 바탕이 되어야 하며, MySQL의 격리 수준에 대한 개념이 어느 정도 지식을 갖추고 있어야 이해하기가 더 편합니다. 참고 - MySQL 격리수준 개념 정리 MySQL 격리 수준 개념 정리 (1)서론이번 포스팅은 Lock에 대한 공부를 하는 과정에서 찾아보았던 MySQL의 격리 수준에 대하여 정리한 내용들 입니다.모든 내용은 MySQL 공식 문서를 참고한 자료이며, 기준은 InnoDB에 대한 설명이ghgo195.tistory.com동시성 제어에 종류Java에서 제공하는 Lock 기법DB에서 사용하는 비관적 락JPA에서 제공..
서론이번 포스팅은 Lock에 대한 공부를 하는 과정에서 찾아보았던 MySQL의 격리 수준에 대하여 정리한 내용들 입니다.모든 내용은 MySQL 공식 문서를 참고한 자료이며, 기준은 InnoDB에 대한 설명이 되겠습니다. 그리고 이번 포스팅에서는 격리수준 중 SERIALIZABLE 와 REPEATABLE READ에 대하여 다루고 있으며, 추후 격리 수준을 더 다룰 예정입니다. 트랜잭션의 격리 수준(Transaction Isolation Level)트랜 잭션의 격리 수준이란, 여러 트랜잭션이 동시에 처리될 때, 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있도록 허용 여부를 결정짓는 것입니다. 트랜잭션의 격리 수준은 격리 수준이 높은 순으로 SERIALIZABLE, REPEATA..
가끔가다 이러한 생각을 할때가 있습니다. 데이터를 등록을 하는 과정에서 이미 등록되어 있는 데이터가 있을 경우 업데이트를 하는 것이 아닌 그냥 무시하는 방법 이 없을까? 하고 , 보통 생각해보면 이러한 경우 미리 SELECT를 통해 데이터 여부를 확인하고 데이터가 없다면 INSERT 아니면 IF 조건으로 빠져나오는 방식을 할 것 입니다. 그런 것도 좋지만 쿼리 자체에서 해당 문제를 해결 할 수 있는 쿼리가 있습니다. INSERT INTO sns_facebook_channel ( fb_post_id , fb_user_id , fb_message , fb_caption , fb_description , fb_picture , fb_source , fb_link , fb_created_time , create..
대용량 데이터를 일괄적으로 등록을 하거나 수정을 진행할 때 등록인지 수정인지를 우선 체크해야 하는 경우가 있다. 간단하게 흔히 사용할 만한 방식을 말하자면, ex) TABLE : A A 테이블에 존재하는 데이터를 리스트(SELECT)로 가져온다. 그 이후 stream filter 를 이용하여 해당 데이터가 이미 존재하는 데이터인지 아니면 신규 데이터인지 foreach를 통해 확인하는 방법 신규 데이터 리스트에 대한 foreach를 돌리면서 해당 정보에 대한 A 테이블 정보가 있는지 그때 마다 DB에 요청하여 등록 또는 수정여부를 확인하는 방법 1번과 2번 둘 다 가능한 방법이지만 1번은 어느정도 데이터까지는 서버에서 체크를 하기에 이상이 없겠지만 결국 특정 데이터량 위치까지 갔을때는 속도에 문제가 될 이..
- Total
- Today
- Yesterday
- 정의
- dockerfile
- 권한
- Linux
- hazelcast
- 캐시
- ncp
- 네이버 클라우드
- 리눅스
- Lock
- 알고리즘
- 이미지
- dfs
- leatcode
- Quartz
- 개념 이해하기
- MySQL
- Java
- 도커
- spring
- Cache
- 격리수준
- 컨테이너
- insert
- 캘린더
- LocalDate
- docker
- 스케줄러
- mybatis
- centos7
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |