mysql
-
디스크 읽기 방식 -> 랜덤 I/O, 순차 I/O컴퓨터에서 CPU나 메모리 같은 주요 장치는 대부분 전자식 장치지만 하드 디스크 드라이브는 기계식 장치다. 하드 디스크를 대체하기 위해서 SSD(solid state driver)가 출시되었다. SSD는 기존 하드 디스크에서 데이터 저장용 플래터(원판)를 제거하고 그 대신 플래시 메모리를 장착했다. 하드 디스크의 경우 물리적인 원판을 돌려야 하기 때문에 랜덤 I/O에는 느리지만, 순차 I/O의 경우에는 상대적으로 빠르다. 인덱스란?인덱스의 비유색인 -> 정렬된 키 기준으로 빠르게 데이터를 찾아갈 수 있다. 자료구조 -> sortedList(인덱스, 저장되는 값을 항상 정렬된 상태로 유지), arrayList(데이터 파일, 저장되는 순서 그대로 유지) ..
[MySQL] 8장 인덱스디스크 읽기 방식 -> 랜덤 I/O, 순차 I/O컴퓨터에서 CPU나 메모리 같은 주요 장치는 대부분 전자식 장치지만 하드 디스크 드라이브는 기계식 장치다. 하드 디스크를 대체하기 위해서 SSD(solid state driver)가 출시되었다. SSD는 기존 하드 디스크에서 데이터 저장용 플래터(원판)를 제거하고 그 대신 플래시 메모리를 장착했다. 하드 디스크의 경우 물리적인 원판을 돌려야 하기 때문에 랜덤 I/O에는 느리지만, 순차 I/O의 경우에는 상대적으로 빠르다. 인덱스란?인덱스의 비유색인 -> 정렬된 키 기준으로 빠르게 데이터를 찾아갈 수 있다. 자료구조 -> sortedList(인덱스, 저장되는 값을 항상 정렬된 상태로 유지), arrayList(데이터 파일, 저장되는 순서 그대로 유지) ..
2025.04.18 -
MySQL 서버는 사람의 머리 역할을 담당하는 MySQL 엔진과, 손발 역할을 담당하는 스토리지 엔진으로 구분할 수 있다 MySQL 전체 구조 MySQL 엔진클라이언트로부터의 접속 및 쿼리 요청을 처리하는 커넥션 핸들러와 SQL 파서 및 전처리기, 쿼리의 최적화된 실행을 위한 옵티마이저가 중심을 이룬다.-> MySQL 엔진은 요청된 SQL 문장을 분석하거나 최적화하는 등 DBMS의 두뇌에 해당하는 처리를 수행 스토리지 엔진데이터를 디스크 스토리지에 저장하거나 디스크 스토리지로부터 데이터를 읽어오는 부분은 스토리지 엔진이 전담한다. MySQL 엔진MySQL Threading 구조 MySQL 서버는 프로세스 기반이 아니라 스레드 기반으로 작동 Foreground thread주로 각 클라이언트 사용자가 ..
[MySQL] 4장 아키텍처MySQL 서버는 사람의 머리 역할을 담당하는 MySQL 엔진과, 손발 역할을 담당하는 스토리지 엔진으로 구분할 수 있다 MySQL 전체 구조 MySQL 엔진클라이언트로부터의 접속 및 쿼리 요청을 처리하는 커넥션 핸들러와 SQL 파서 및 전처리기, 쿼리의 최적화된 실행을 위한 옵티마이저가 중심을 이룬다.-> MySQL 엔진은 요청된 SQL 문장을 분석하거나 최적화하는 등 DBMS의 두뇌에 해당하는 처리를 수행 스토리지 엔진데이터를 디스크 스토리지에 저장하거나 디스크 스토리지로부터 데이터를 읽어오는 부분은 스토리지 엔진이 전담한다. MySQL 엔진MySQL Threading 구조 MySQL 서버는 프로세스 기반이 아니라 스레드 기반으로 작동 Foreground thread주로 각 클라이언트 사용자가 ..
2025.01.12 -
잠금과 트랜잭션은 서로 비슷한 개념 같지만 다르다.잠금동시성을 제어하기 위한 기능여러 커넥션에서 동시에 동일한 자원을 요청할 경우 순서대로 한 시점에는 하나의 커넥션만 변경할 수 있게 해주는 역할 트랜잭션데이터의 정합성을 보장하기 위한 기능 격리 수준은 하나의 트랜잭션 내에서 또는 여러 트랜잭션 간의 작업 내용을 어떻게 공유하고 차단할 것인지를 결정하는 레벨범위를 최소화해야 한다. 네트워크 작업이 있는 경우 반드시 트랜잭션에서 배제해야 한다. MySQL에서 사용되는 잠금은 크게 스토리지 엔진 레벨, MySQL 엔진 레벨로 나눌 수 있다. (https://kkang-joo.tistory.com/163)MySQL 엔진은 스토리지 엔진을 제외한 나머지 부분MySQL 엔진 레벨의 잠금은 스토리지 엔진에 영향을 ..
[MySQL] 5장 트랜잭션과 잠금잠금과 트랜잭션은 서로 비슷한 개념 같지만 다르다.잠금동시성을 제어하기 위한 기능여러 커넥션에서 동시에 동일한 자원을 요청할 경우 순서대로 한 시점에는 하나의 커넥션만 변경할 수 있게 해주는 역할 트랜잭션데이터의 정합성을 보장하기 위한 기능 격리 수준은 하나의 트랜잭션 내에서 또는 여러 트랜잭션 간의 작업 내용을 어떻게 공유하고 차단할 것인지를 결정하는 레벨범위를 최소화해야 한다. 네트워크 작업이 있는 경우 반드시 트랜잭션에서 배제해야 한다. MySQL에서 사용되는 잠금은 크게 스토리지 엔진 레벨, MySQL 엔진 레벨로 나눌 수 있다. (https://kkang-joo.tistory.com/163)MySQL 엔진은 스토리지 엔진을 제외한 나머지 부분MySQL 엔진 레벨의 잠금은 스토리지 엔진에 영향을 ..
2025.01.04 -
mysql에서는 다양한 방법의 중복 데이터 관리 방식이 있다 각각의 방식들을 한번 알아보도록 하자 insert ignore replace on dupicate key update 중복으로 인지하는 경우는 아래와 같다 데이터 삽입 시, PRIMERY KEY나 UNIQUE KEY가 중복되었을 경우 insert ignore 새로 추가로 온 insert 무시 INSERT IGNORE INTO TABLE_NAME (column1, column2, column3) VALUES ('kim', 1000, 0); replace 기존의 레코드를 삭제하고 다시 데이터 삽입 레코드가 삭제되고 다시 삽입되기 때문에 AUTO_INCREMENT로 ID값을 지정했을 경우 ID값이 변한다 REPLACE INTO TABLE_NAME (..
[MySQL] 중복 데이터 관리(on duplicate key update..)mysql에서는 다양한 방법의 중복 데이터 관리 방식이 있다 각각의 방식들을 한번 알아보도록 하자 insert ignore replace on dupicate key update 중복으로 인지하는 경우는 아래와 같다 데이터 삽입 시, PRIMERY KEY나 UNIQUE KEY가 중복되었을 경우 insert ignore 새로 추가로 온 insert 무시 INSERT IGNORE INTO TABLE_NAME (column1, column2, column3) VALUES ('kim', 1000, 0); replace 기존의 레코드를 삭제하고 다시 데이터 삽입 레코드가 삭제되고 다시 삽입되기 때문에 AUTO_INCREMENT로 ID값을 지정했을 경우 ID값이 변한다 REPLACE INTO TABLE_NAME (..
2023.12.26