MariaDB 3

트랜잭션 격리 수준(ISOLATION LEVEL)

트랜잭션의 격리 수준(Isolation Level)이란 여러 트랜잭션이 동시에 처리될 때 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있게 허용할지 말지를 결정하는 것이다. 격리 수준 종류 1.READ UNCOMMITTED 2. READ COMMITTED 3. REPEATABLE READ 4. SERIALIZABLE 각 트랜잭션의 격리 수준에 따라 세가지 부정합이 생길 수 있다. DIRTY READ 커밋되지 않은 데이터를 데이터를 다른 트랜잭션에서 읽는 상황 NON-REPEATABLE READ 한 트랜잭션에서 같은 쿼리를 두 번 수행할 때 그 사이에 다른 트랜잭션이 값을 수정 또는 삭제함으로써 두 쿼리의 결과가 다르게 나타나는 현상 PHANTOM READ 한 트랜잭션 안에서 일정..

MariaDB 2022.05.06

MySQL/MariaDB Storage 엔진 비교

1. InnoDB 엔진 1.1 특징 3개 엔진중 유일하게 트랜잭션을 지원하여 ACID를 충족한다. 또한 외래키를 지원한다. 데이터가 클러스터링 인덱스(프라이머리 키)기반으로 저장되며 세컨더리 인덱스는 리프노드에 프라이머리키 값을 저장한다. MVCC 기능을 통해 잠금을 사용하지 않는 일관된 읽기 기능을 제공한다. row-level lock을 사용하여 multi-user 환경에서 높은 성능을 제공한다. InnoDB 버퍼풀을 사용하여 디스크의 데이터파일/인덱스를 메모리에 캐시하며, 쓰기버퍼 역할을 수행한다. Undo 로그를 활용하여 트랜잭션 보장 및 격리 수준을 보장한다. 체인지 버퍼를 사용하여 인덱스에 대한 UPDATE 작업을 버퍼링 하여 성능을 향상 시킨다 (유니크 인덱스 제외) 리두 로그를 통해 자동화된..

MariaDB 2022.05.06

MariaDB 이중화 구성

출처 : https://www.slideshare.net/NHNFORWARD/mysql-nhn-forward-2018 [2018] MySQL 이중화 진화기 24시간 365일 서비스를 위한 MySQL DB 이중화. MySQL 이중화 방안들에 대해 알아보고 운영하면서 겪은 고민들을 이야기해 봅니다. 목차 1. DB 이중화 필요성 2. 이중화 방안 - HW 이중화 - MySQL Replication 이 www.slideshare.net 본 글은 nhn에서 발표한 레퍼런스를 참고하여 작성하였습니다. MariaDB에서는 최근에 MaxScale을 많이 사용하는 것 같던데, 해당 게시물을 추가적으로 업데이트 하겠습니다. 1. MariaDB Replication MariaDB에서 기본적으로 제공하는 Replicatio..

MariaDB 2022.05.06