[Real MySQL 8.0 1] 0.5 트랜잭션과 잠금
·
💻/데이터베이스
1. 트랜잭션트랜잭션작업의 완전성 보장논리적인 작업 셋 모두 완벽하게 처리 OR 처리 못할 경우에는 원 상태로 복구=> 작업의 일부만 적용되는 현상(Partial update)이 발생하지 않게 만들어주는 기능 잠금(Lock): 동시성을 제어하기 위한 기능트랜잭션: 데이터의 정합성을 보장하기 위한 기능ex. 하나의 회원 정보 레코드 -> 여러 커넥션에서 동시에 변경하려고 함잠금 X -> 하나의 데이터를 여러 커넥션에서 동시에 변경할 수 있게 됨=> 해당 레코드 값은 예측할 수 없는 상태 됨 잠금: 여러 커넥션에서 동시에 동일한 자원(레코드/테이블) 요청 -> 순서대로 한 시점에는 하나의 커넥션만 변경할 수 있게 해주는 역할격리 수준: 하나의 트랜잭션 내에서 or 여러 트랜잭션 간의 작업 내용을 어떻게 공유..
[Real MySQL 8.0 1] 04. 아키텍처 - 3. MyISAM 스토리지 엔진 아키텍처 / 4. MySQL 로그 파일
·
💻/데이터베이스
3. MyISAM 스토리지 엔진 아키텍처키 캐시, 운영체제의 캐시/버퍼 -> MyISAM 스토리지 엔진의 성능에 영향1) 키 캐시(Key cache, 키 버퍼)InnoDB의 버퍼 풀과 비슷한 역할인덱스만을 대상으로 작동, 인덱스의 디스크 쓰기의 작업에 대해서만 부분적으로 버퍼링 역할키 캐시 히트율(Hit rate) = 100 - (Key_reads / Key_read_requests * 100)Key_reads: 인덱스를 디스크에서 읽어 들인 횟수를 저장하는 상태 변수Key_read_requests: 키 캐시로부터 인덱스를 읽은 횟수를 저장하는 상태 변수상태값 -> `SHOW GLOBAL STATUS LIKE 'Key%';`일반적으로 99% 이상으로 유지하는 것 권장99% 미만 -> 키 캐시 조금 더 크..
[Real MySQL 8.0 1] 04. 아키텍처 - 2. InnoDB 스토리지 엔진 아키텍처
·
💻/데이터베이스
2. InnoDB 스토리지 엔진 아키텍처MySQL의 스토리지 엔진 가운데 가장 많이 사용거의 유일하게 레코드 기반의 잠금 제공 -> ↑ 동시성 처리 가능, 안정적, 성능 뛰어남 1) 프라이머리 키에 의한 클러스터링프라이머리 키를 기준으로 클러스터링되어 저장 = 프라이머리 키 값의 순서대로 디스크에 저장프라이머리 키 = 클러스터링 인덱스 -> 프라이머리 키를 이용한 레인지 스캔은 상당히 빨리 처리 => 쿼리 실행 계획에서 프라이머리 키: 다른 보조 인덱스에 비해 비중 높게 설정(다른 보조 인덱스보다 선택될 확률 ↑)모든 세컨더리 인덱스 -> 프라이머리 키의 값(레코드 주소 대신)을 논리적인 주소로 사용오라클 DBMS의 IOT(Index organized table) -> InnoDB에서는 일반적인 테이블 ..
[Real MySQL 8.0 1] 04. 아키텍처 - 1. MySQL 엔진 아키텍처
·
💻/데이터베이스
1. MySQL 엔진 아키텍처MySQL 서버: MySQL 엔진(ex. 사람 머리) + 스토리지 엔진(ex. 손발)핸들러 API를 만족하면 누구든 스토리지 엔진을 구현해 MySQL 서버에 추가해 사용할 수 있음1) MYSQL의 전체 구조MySQL 엔진커넥션 핸들러:클라이언트로부터의 접속 및 쿼리 요청 처리SQL 파서전처리기옵티마이저: 쿼리의 최적화 실행 표준 SQL(ANSI SQL) 문법 지원 -> 타 DBMS와 호환되어 실행 O 스토리지 엔진MySQL 엔진(1개): 요청된 SQL 문장 분석 or 최적화DBMS의 두뇌에 해당하는 처리/ 1개 스토리지 엔진(N개): 실제 데이터 -> 디스크 스토리지에 저장 or 디스크 스토리지부터 데이터 읽어오기여러 개 동시에 사용할 수 있음사용할 스토리지 엔진 지정 -> ..
[Real MySQL 8.0 1] 03. 사용자 및 권한
·
💻/데이터베이스
DBMS 선택 순서1. 안정성 / 2. 성능과 기능 / 3. 커뮤니티나 인지도점수 부여할 때 사용하는 대표적인 기준웹 사이트 언급 횟수 / 검색 빈도 / 기술 토론 빈도 / DBMS별 구인 / 전문가 인맥 DB-Engines RankingPopularity ranking of database management systems.db-engines.com1. 사용자 식별사용자의 계정 + 사용자의 접속 지점클라이언트가 실행된 호스트명 or 도메인/IP 주소=> 계정 언급할 때는 항상 아이디와 호스트 함께 명시해야 함 항상 MySQL 서버가 기동 중인 로컬 호스트에서 svc_id라는 아이디로 접속할 때만 사용될 수 있는 계정'svc_id'@'127.0.0.1' IF 모든 외부 컴퓨터에서 접속이 가능한 사용자 ..
kimmeoww
'💻/데이터베이스' 카테고리의 글 목록 (2 Page)