반응형

MySQL 3

MySQL innodb_flush_log_at_trx_commit 옵션

서론 실무에 있어서 MySQL 설정 중 하나인 innodb_flush_log_at_trx_commit 옵션이 무엇인지 알아두면 좋다. 공식문서 내용을 참고하는 것이 가장 정확하겠지만 영어문서를 읽는 것이 익숙하지 않다면 아래 정리 내용을 봐도 좋을 것 같다. 요약 innodb_flush_log_at_trx_commit 옵션은 InnoDB 스토리지 엔진에서 트랜잭션의 커밋(commit) 작업 시 로그 파일을 언제 디스크에 쓸 것인지를 결정하는 옵션이다. DB 운영 중 고민 해야 할 부분이 성능(performance)와 데이터 트랜잭션 커밋 신뢰성(ACID) 사이의 균형일텐데 이 둘 사이의 균형을 조절하는 옵션이라 보면 될 것 같다. 성능과 트랜잭션 커밋된 데이터의 신뢰성은 양립할 수 없고 경우에 따라 이 ..

MySQL 2023.03.03

Clustered Index와 Secondary Index

Index란? Index란, 테이블에 대한 동작속도를 높여주는 자료구조이다. 조금 더 자세히 설명하자면, Disk에서 발생하는 I/O 시간은 Main Memery에서 발생하는 I/O에 비해 매우 크다. 따라서, DB를 통해 데이터를 검색시 Disk I/O가 빈번히 일어나지 않도록 하는 것이 유리할 것 같다. 이를 위해 Index를 사용한다. Index를 통해 Disk I/O의 횟수를 최대한 줄여 DB의 성능을 높일 수 있는 것이다. 따라서, Index는 DB에서 뿐만 아니라, random access를 할 때 사용하면 적합하다. 아래 그림은 id=106번 학생을 검색하는 과정이다. Disk I/O에 비해, block 내의 탐색 시간은 매우 적게 걸리므로 일단 무시한다. 순서대로 정렬되어 있는 key인 경..

MySQL 2021.01.28

Transaction & Locking (트랜잭션과 로킹)

RDB의 특징 중 하나는 트랜잭션이다. 흔히 트랜잭션이 ACID 특성을 가진다고 하는데, ACID는 Atomic(원자성), Consistency(일관성), Isolation(고립성) 그리고 Durability(지속성)을 일컫는다. 즉, 여러 SQL문이 로직에 의해 조합되어 실행되는 경우 하나의 단위처럼 취급해야 함을 뜻한다고 해석해도 될 듯 싶다, ACID에 대한 자세한 설명은 위키를 참조하자. https://en.wikipedia.org/wiki/ACID ACID - Wikipedia Set of properties (atomicity, consistency, isolation, durability) of database transactions intended to guarantee validity e..

MySQL 2020.03.02
반응형