week9_incheol_4 - GANGNAM-JAVA/JAVA-STUDY GitHub Wiki
db lock μ’ λ₯μ λν΄ μ€λͺ νμμ€
MySQL λμμ± μ μ΄, μλ² νλ, νν°μ , SQL νμ©
λμμ± μ μ΄
- MySQL μ Lock κ³Ό νΈλμμ μΌλ‘ λμμ±μ μ μ΄
- MySQL Lock 맀컀λμ¦
- μ°λ λκ° λ°μ΄ν° μ§ν©μ μμ²ν λ Lock μ€μ
- λ°μ΄ν° μ§ν©μ ν μ΄λΈ, ν, νμ΄μ§, λ©νλ°μ΄ν
- μ°λ λκ° λ°μ΄ν° μ§ν© μ²λ¦¬ μλ£νλ©΄ Lock ν΄μ
- MySQL νΈλμμ
- μ λ’°μ± μκ² μ²λ¦¬λλ μΌμ λ¨μ
Lock
- μ½κΈ° Lock
R
λ§ κ°λ₯CUD
λΆκ°
- μ°κΈ° Lock
CRUD
λΆκ°
Lock μ’ λ₯
- Table Lock
- ν μ΄λΈ μ 체μ Lockμ κ±ΈκΈ° λλ¬Έμ λ€λ₯Έ νΈλμμ μ΄ ν΄λΉ ν μ΄λΈμ μ κ·Ό λΆκ°
- Row Lock
- νλ μ΄μμ κ°λ³μ μΈ νμ Lock
- Lockμ΄ κ±Έλ¦¬μ§ μμ νμ μ κ·Ό κ°λ₯
- Page Lock
BDB
λΌλ μ€ν λ¦¬μ§ μμ§μ μ μ©.- κ±°μ μ¬μ©λμ§ μμ
- Metadata Lock
- μ°λ λκ° ν μ΄λΈμ μ¬μ©ν λ ν μ΄λΈμ λͺ¨λ λ©νλ°μ΄ν°μ Lock
- λ©νν
μ΄ν°λ,
DDL μ μν΄ λ³κ²½λλ μ 보
ν μ΄λΈ Lock
MyISAM
μ€ν λ¦¬μ§ μμ§μμ μ¬μ©- μ€ν λ¦¬μ§ μμ§κ³Ό 무κ΄νκ²
LOCK TABLE
λͺ λ ΉμΌλ‘ Lock κ°λ₯ - v5.5 μ΄μμμ
DDL
μ€ν μ Lock λ°μ
ν Lock
- ν μ΄λΈ μ μ²΄κ° μλ μΌλΆ νμ lock
InnoDB
λ ν lock
ν lock
create table my_inno_t( id int auto_increment primary key, name varchar(10) ); insert into my_inno_t(name) values('a'); insert into my_inno_t(name) values('b'); insert into my_inno_t(name) values('c'); select * from my_inno_t; update my_inno_t set name = sleep(200) where id = 1; # 200μ΄ κ±Έλ¦Ό
λ€λ₯Έ μΈμ
μ΄κ³ select * from my_inno_t;
νλ©΄ κ°λ₯ update my_inno_t set name='aaa' where id=1;
νλ©΄ λΆκ°λ₯ νμ lock μ΄ κ±Έλ €μ
νΈλμμ
- MySQL μ μ€ν λ¦¬μ§ μμ§ λ 벨μΌλ‘ νΈλμμ
select @@autocommit;
μΌλ‘ νΈλμ¬μ μ¬μ© μ¬λΆ νμΈ
- MySQL νΈλμμ
start transaction;
orbegin;
μΌλ‘ νΈλμμ μμcommit;
μΌλ‘ μν μλ£rollback
μΌλ‘ μν μ·¨μ