목록데이터베이스 (3)
개발일기

MVCC (Multi Version Concurrency Control)일반적으로 레코드 레벨의 트랜잭션을 지원하는 DBMS 제공하는 기능이며, MVCC 가장 큰 목적인 잠금을 사용하지 않는 일관된 읽기를 제공하는 데 있다. InnoDB 언두 로드(Undo log)를 이용해 이 기능을 구현한다. 멀티 버전이라 함은 하나의 레코드에 대해 여러 개의 버전이 동시에 관리된다는 의미다. 이를 위해 격리 수준(Isolation Level) 이 READ_COMMITED 인 MySQL 서버에서 InnoDB 스토리지 엔진을 사용하는 테이블의 데이터 변경 INSERT 문 실행시 아래 처럼 바뀜 update 후 UPDATE 문장이 실행되면 커밋 실행 여부와 관계없이 InnoDB 버퍼 풀은 새로운 값인 '경기'로 ..

MYSQL 엔진 MySQL 엔진은 클라이언트로부터의 접속 및 쿼리 요청을 처리하는 커넥션 핸들러와 SQL 파서 및 전처리기, 쿼리의 최적화된 실행된다.MySQL 표준 SQL문법을 지원하기 때문에 표준 문법에 따라 작성된 쿼리는 타 DBMS 호환되어 실행 가능하다. 스토리지 엔진 MYSQL 엔진은 요청된 SQL 문장을 분석하거나 최적화하는 등 DBMS 두뇌에 해당하는 처리를 수행하고, 실제 데이터를 디스크 스토리지에 저장하거나 디스크 스토리지로부터 데이터를 읽어오는 부분을 스토리지 엔진이 전담한다. MYSQL 엔진은 하나지만 스토리지 엔진은 여러개를 사용할 수 있다. create table test_table (fd1 INT, fd2 INT)ENGINE=INNODB; test_table은 InnoDB 스..

🔒 락 (Lock) 이란? 여러 커넥션에서 동시에 동일한 자원을 요청할 경우 순서대로 하나의 커넥션만 변경할 수 있게 해주는 기능. 동시성을 제어하기 위한 기능 락을 비유하는 말 중에서 '내가 화장실 칸을 사용하기 위해 화장실 칸을 직접 들어가서 내가 잠그는 것'의 관점으로 이해하면 편하다..! ✨ Lock의 종류 데이터베이스의 락은 크게 다음과 같은 종류로 분류할 수 있다. 👥 공유 락 (Shared Lock) 공유 락은 데이터를 변경하지 않는 읽는 명령에 대해 주어지는 락으로 Read Lock이라고도 불리며 Shared의 앞 글자를 따서 주로 S로 표기한다. 여러 사용자가 동시에 데이터를 읽어도 데이터의 일관성에는 아무런 영향을 주지 않기 때문에 , 공유 락끼리는 동시에 접근이 가능하다. ..