Database/Mysql
-
Mysql Lock이란?Database/Mysql 2023. 2. 6. 00:11
Lock 이란? 리소스로의 접근 경쟁을 제어하기 위한 잠금 장치이다. 메모리로 접근할 수 있는 문을 잠궈서(lock을 걸어서) 스레드가 메모리로 접근하지 못하게 하거나 (운영체제 관점) DB 데이터에 접근할 수 있는 문을 잠궈서(lock을 걸어서) 트랜잭션이 데이터에 접근하지 못하게 하는 (DB 관점) 등 리소스를 보호하기 위한 다양한 경우에 사용하는 상호배제를 위한 '개념'이다. 이 개념은 뮤텍스나 세마포어 등 다양한 형태로 구현된다. Mysql에서의 Lock 종류 공유 잠금(Shared lock, 일명 s lock) - 한 트랜잭션이 특정 데이터에 lock을 걸어도 다른 트랜잭션에서 그 데이터에 읽기 접근은 가능하다. 쓰기 등 다른 접근은 불가능하다. - read lock이라고도 불륀다. (개인적으로..
-
DB TransactionDatabase/Mysql 2021. 7. 17. 17:05
트랜잭션이란? DB의 데이터를 변화시키는 논리적인 작업 단위 트랜잭션의 특징 Atomicity(원자성) : 트랜잭션에 포함된 작업은 전부 수행되거나 전부 수행되지 않는다. Consistency(일관성) : 트랜잭션의 실행과 상관없이 DB내의 데이터는 항상 일관된 상태를 유지한다. Isolation(격리성) : 한 트랜잭션에 의해 선점된 데이터를 타 트랜잭션의 선점으로부터의 격리 수준을 조절할 수 있다. Durability(지속성) : 성공적으로 종료된 트랜잭션은 변경한 데이터가 유실되지 않도록 결과를 DB에 완전히 반영시킨다. 트랜잭션 연산 commit : 트랜잭션 내의 데이터 보정 작업들이 모두 완료되면, 보정된 데이터들을 한꺼번에 DB에 반영하고 트랜잭션을 종료하는 연산 rollback : 트랜잭션 ..
-
MyISAM vs InnoDB (링크)Database/Mysql 2021. 6. 23. 01:03
https://hyoje420.tistory.com/39 [MySQL]Storage Engine(MyISAM vs InnoDB) Storage Engine 먼저 MySQL에는 크게 두 가지의 엔진이 존재한다. 하나는 서버 엔진이고 하나는 스토리지 엔진이다. 서버 엔진은 쿼리 요청이 왔을 때 쿼리 파싱(Query parsing)을 하여 스토리지 엔진에 hyoje420.tistory.com IDE에 비유하여 이 둘을 비교해놨는데, 굉장히 이해가 쏙쏙 잘 됐다. MyISAM은 vi와 비슷하고 InnoDB는 Eclipse, Intellij와 비슷하다고 한다. 진짜 맞는지는 실제로 안써봐서 잘 모르겠다만, 그래도 다른 블로그 글들보다는 이해가 잘 됐다.