목록데이터베이스 (3)
제리의 배움 기록
요약 InnoDB 스토리지 엔진은 레코드 락(Record Lock), 레코드와 인접 레코드 사이의 간격을 잠그는 갭 락(GAP Lock), 레코드 락과 갭 락을 합쳐놓은 형태의 잠금인 넥스트 키 락(Next Key Lock)을 지원합니다. InnoDB에서는 인덱스에 락을 걸기 때문에 인덱스 설계가 중요합니다. 레코드락(Record lock) 레코드 자체만 잠그는 것을 레코드 락이라고 합니다. 다른 상용 DBMS의 레코드 락과 동일한 역할을 합니다. (MySQL의 MyISAM 스토리지 엔진은 레코드락을 지원하지 않습니다.) 한가지 중요한 차이는 InnoDB 스토리지 엔진은 레코드 자체가 아니라 인덱스의 레코드를 잠근다는 점입니다. 인덱스가 하나도 없는 테이블이어도 내부적으로 자동 생성된 클러스터 인덱스를 ..
요약 트랜잭션 격리 수준이란, 여러 트랜잭션이 동시에 처리될 때, 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있게 허용할지 말지를 결정하는 것입니다. MySQL에는 READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE 4가지 격리 수준이 있습니다. 데이터 격리(고립) 수준 : READ UNCOMMITTED READ COMMITTED > REPEATABLE READ > SERIALIZABLE MySQL의 격리 수준 READ UNCOMMITED 각 트랜잭션에서의 변경 내용이 CO..
인덱스란? DBMS에서 데이터의 저장(insert, update, delete) 성능을 희생하고 그 대신 데이터의 읽기 속도를 높이는 기능입니다. 데이터의 저장 속도를 어디까지 희생할 수 있는지, 읽기 속도를 얼마나 더 빠르게 만들어야 할지에 따라 인덱스 생성을 결정해야 합니다. 인덱스의 역할 별 구분 인덱스는 프라이머리 키(Primary key)와 보조 키(세컨더리 인덱스, secondary key)로 구분할 수 있습니다. 프라이머리 키 프라이머리 키는 레코드를 식별할 수 있는 값으로 만들어진 인덱스 null 값을 허용하지 않으며 중복을 허용하지 않는 것이 특징 세컨더리 키 프라이머리키를 제외 나머지 모든 인덱스는 세컨더리 인덱스로 분류 유니크 인덱스 세컨더리 키에 포함되며, 프라이머리 키와 성격이 비..