분류 전체보기

📚 Databases/RealMySQL 8.0

5.4 MySQL의 격리 수준

트랜잭션의 격리 수준(isolation level)이란 여러 트랜잭션이 동시에 처리될 때 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있게 허용할지 말지를 결정하는 것이다. 크게 4가지로 나뉜다. READ UNCOMMITED (=DIRTY READ) 거의 사용하지 않는다. READ COMMITED Oracle 같은 DBMS에서 주로 사용 REPEATABLE READ MySQL에서 사용 SERIALIZABLE 동시성이 중요한 데이터베이스에서는 거의 사용되지 않는다. 아래로 내려갈 수록 트랜잭션 간 데이터 격리(고립) 정도가 높아지며, 동시 처리 성능은 낮아진다. 하지만, SERIALIZABLE이 아닌 나머지 3개는 크게 성능의 개선이나 저하는 발생하지 않는다. 5.4.1 READ ..

⚙️ Devops/⛏ Git

GitLab CI/CD 구성하기

목표 GitLab에서 CI/CD를 하는 것 개발 환경 HOST Mac OS X SERVER Ubuntu 20.04 LTS GitLab Version : v14.5.0 Docker version 20.10.17, build 100c701 Gitlab Runner 설치 💡 Gitlab 버전과 Gitlab-Runner의 버전을 꼭 일치시켜주세요! Docker로 설치하기 docker run -d --name gitlab-runner-v14.5.0 \\ --restart always \\ --volume /srv/gitlab-runner/config:/etc/gitlab-runner: \\ --volume /var/run/docker.sock:/var/run/docker.sock \\ gitlab/gitlab-r..

📚 Databases/RealMySQL 8.0

5.3 InnoDB 스토리지 엔진 잠금

5.3 InnoDB 스토리지 엔진 잠금 InnoDB 스토리지 엔진은 MySQL과 별개로 잠금을 제공한다. 💡 스토리지 엔진 내부에서 레코드 기반의 잠금 방식을 탑재하고 있다. 5.3.1 InnoDB 스토리지 엔진의 잠금 InnoDB 스토리지 엔진은 레코드 기반의 잠금 을 제공하며, 잠금 정보가 상당히 작은 공간으로 관리되기 때문에 *락 에스컬레이션(레코드 락이 페이지 락으로, 또는 테이블 락으로 레벨업되는 경우)되는 경우는 없다. 또한 InnoDB에서는 특징인 레코드와 레코드 사이의 간격을 잠그는 갭(GAP) 락이라는 것이 존재한다. 점선으로 표시된 것은 존재하지 않는 레코드를 뜻한다. 5.3.1.1 레코드 락 레코드 자체만을 잠그는 것을 *레코드 락이라고 한다. 레코드 ? 레코드란 테이블의 한 데이터의..

💬 ETC..

Forward Proxy와 Reverse Proxy의 개념과 차이점

Forward Proxy와 Reverse Proxy의 개념과 차이점 Forward Proxy와 Reverse Proxy라는 단어를 많이 들어봤는데 개념을 정확히 이해하고 둘의 차이점을 알아보도록 하겠습니다. Proxy란? 먼저 둘을 알기 위해서는 Proxy라는 개념을 이해해야 합니다. 프록시란 그 뜻을 해석하면 대리 라는 뜻입니다. 서버와 서버 사이에서 중계기 역할을 합니다. 클라이언트와 서버 사이에 프록시 서버를 두게 되면 얻는 이점들이 많습니다. 보안상으로 얻을 수 있는 이점도 있고, 중복된 데이터들을 캐싱하여 서버까지 가지 않고 캐싱된 데이터를 빠르게 응답받을 수 있는 이점이 있습니다. 결론적으로 프록시 서버를 사용하는 이유는 다음과 같습니다. 클라이언트에게는 빠른 처리 속도 서버에게는 불필요한 부..

📚 Databases/RealMySQL 8.0

5.2 MySQL 엔진의 잠금

잠금의 레벨 MySQL 레벨의 잠금 모든 스토리지 엔진에 영향을 미침 테이블 락 외에도 메타데이터 락(테이블 구조 잠금), 네임드 락 등 기능 제공 스토리지 엔진 레벨의 잠금 스토리지 엔진 간 상호 영향 없음 5.2.1 Global Lock(글로벌 락) DML(Data Manipulation Language, 데이터 조작어)란? 정의된 데이터베이스에 입력된 레코드를 조회, 수정, 삭제 등의 역할을 하는 언어 SELECT INSERT UPDATE DELETE DDL(Data Definition Language, 데이터 정의어)란? 데이터베이스를 정의하는 언어 (데이터 전체의 골격을 결정) CREATE ALTER DROP TRUNCATE FLUSH TABLES WITH READ LOCK 명령으로 획득 MyS..

📚 Databases/RealMySQL 8.0

5.1 트랜잭션

트랜잭션의 성질 Transaction(트랜잭션)의 4가지 성질 (ACID) Atomicity(원자성) all or nothing 트랜잭션의 모든 연산들이 정상 완료되거나 어떠한 연산도 수행되지 않은 상태를 보장 Consistency(일관성) 공적으로 수행된 트랜잭션은 정당한 데이터들이 데이터베이스에 반영되었음을 의미 DB에서 데이터 변경 시 사전에 설정되어 있는 룰에 맞지 않는 데이터가 들어가는 것을 방지 Isolation(독립성/고립성) 여러 트랜잭션이 동시에 수행 되더라도 각각의 트랜잭션은 다른 트랜잭션의 수행에 영향을 받지 않고 독립적으로 수행되어야 함 다수의 세션 또는 유저가 같은 시간에 같은 데이터에 접근하고 처리 중일 때 수행 중인 트랜잭션이 완료 될 때 까지 다른 트랜잭션이 끼어 들지 못하게..

iseunghan
'분류 전체보기' 카테고리의 글 목록 (5 Page)