Notice
Recent Posts
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 버튼
- 알고리즘
- 필터체인
- 제이쿼리
- 셋업
- EL태그
- 깃허브 간단요약
- jsp
- Spring
- jstl
- 마이바티스
- 자바스크립트
- 설정
- springboot
- html
- jsp 내부객체
- 깃허브
- SESSION
- 스프링
- 이클립스
- 설치
- 오라클
- jquery
- java
- MySQL
- 폼태그
- Oracle
- 자바
- 면접
- Eclipse
Archives
- Today
- Total
은은하게 코드 뿌시기
[DB] LOCK 본문
728x90
LOCK?
: 조작중인 데이터를 다른세션이 조작 할 수없도록 접근을 보류시키는것.
세션에서 조작중인 데이터는 트랜잭션이 완료 되기 전까지 다른 세션에서 다른세션에서 조작할 수없는 상태가 됩니다.
즉, 데이터가 잠기는 것입니다. 하나의 데이터를 여러곳에서 동시에 조작 하려 할때 발생 할 수있는 혼란을 최소하기 위한 중요한 요소입니다.
=> A와 B세션이 동시 접속 상황이고 같은 테이블의 데이터를 조회하고자 할때
A SESSION이 UPDATE 가 진행 될 경우 B SESSION은 대기 하게 됩니다.
A SESSION이 UPDATE 를 COMMIT시키면 B SESSION의 작업을 진행 하는 것을 알수 있습니다.
LOCK 종류
종류 | 설명 |
행 레벨록(row level lock) | SQL문으로 조작하는 대상 데이터가 테이블의 특정행 데이터일 경우에 해당 행만 LOCK이 발생함 |
테이블 레벨록(table level lock) | 테이블에 변경되는 행의 수와는 상관없이 데이터 조작 명령어를 사용하여 데이터가 변경 중인 테이블은 테이블 단위 잠금 , 데이터 변경중인 세션 외 다른 세션에서 (create, alter, rename, truncate, drop)을 통한 테이블 구조를 변경할 수 없음. |
+ WHERE절을 지정하지 않은 UPDATE, DELETE문일 경우 테이블의 모든 행 데이터에 영향을 주는 명령어이므로 이 경우에는 테이블에 저장되어있는 전체 행이 LOCK상태가 됩니다. UPDATE, DELETE 명령을 수행하기 위해서는 대기해야 합니다. 하지만 테이블 전체 행이 LOCK상태여도 INSERT문의 수행은 가능합니다.
728x90
'Database -Mysql,Oracle' 카테고리의 다른 글
[DB-MYSQL] 계정추가/사용자추가 (0) | 2022.08.16 |
---|---|
[DB-MYSQL] 외부 접속 허용/ MYSQL 윈도우10 인바운드설정 (0) | 2022.08.16 |
[DB] DML(Data Manipulation Language) 데이터조작어 (0) | 2022.08.12 |
[DB] 세션(session) (0) | 2022.07.26 |
[DB] 트랜잭션(transaction)/ROLLBACK/COMMIT (0) | 2022.07.26 |
Comments