mysql

·mysql
[1] InnoDB 기본키와 B-Tree(1) InnoDB 기본 키의 중요성InnoDB 기본 키는 인덱스 정렬 저장 엔진(Index-Organized Storage Engine) 이다. 이는 기본 키를 B-Tree 를 사용해 데이터를 저장하며, 모든 InnoDB 테이블에 기본 키가 필수이다. 보조 인덱스 또한 B-Tree 로 구성되면, 여기서 저장된 값은 기본 키를 통해 데이터에 접근하게 된다. (2) B-TreeB-Tree 는 디스크와 같은 블록 디바이스에서 효율적으로 동작하도록 설계된 데이터 구조이다. 디스크에서 단일 바이트를 임의의 위치에서 읽는 데 소요하는 시간은 큰 블록을 읽는 데 걸리는 시간과 크게 다르지 않는 장점이 있다. 루트 노드로 부터 시작해 검색 키를 비교해 중간 노드, 데이터에 존재..
·mysql
레코드 락레코드 자체를 잠그는 락을 레코드 락(Record Lock, Record Only Lock) 이라 부릅니다. InnoDB 스토리지 엔진은 레코드 자체를 잠그는 대신 인덱스의 레코드를 잠그는 특성이 있습니다. 만약 테이블이 인덱스 없이 정의된 경우에도 숨겨진 클러스터링 인덱스(GEN_CLUST_INDEX)를 생성하여 해당 인덱스 레코드에 락을 겁니다. 6바이트의 단순 증가 필드를 추가해 데이터가 삽입되는 순서대로 정렬됩니다. 갭 락갭 락은 레코드 자체가 아니라 레코드와 바로 인접한 레코드 사이의 간격 만을 잠그는 것을 의미합니다. 갭 락의 역할은 레코드와 레코드 사이의 간격에 새로운 레코드가 삽입(INSERT) 되는 것을 제어하기 위함입니다. 넥스트 키 락넥스트 키 락은 레코드 락과 갭 락을 합쳐..
·mysql
이전에 업데이트 작업에서 staging 과 production 환경에서 설정된 collation 이 달라 DB 동기화 작업하기 위해 테이블을 추가하는 과정에서 에러가 발생했을 때 정리했던 내용. 1. 문자 집합 & 인코딩 (1) 문자 집합(Character set) 컴퓨터가 인식하고 표현할 수 있는 문자의 모음 UTF-8(Universal Coded Character Set + Transformation Format – 8-bit) 유니코드를 위한 가변 길이 문자 인코딩 방식 중 하나 유니코드 한 문자를 나타내기 위해 1바이트에서 4바이트 까지를 사용 (4byte encoding) MySQL character-set 비교 utf8 : MySQL에서는 가변-3byte utf8을 지원하는 자료형 (emoji..
cooper25
'mysql' 태그의 글 목록