DBMS(2)
-
MySQL 인덱스 크기와 디스크 I/O 최적화: 데이터베이스 성능 향상 가이드
배경 해축갤 프로젝트를 하며 데이터가 200만개에서 1억개로 늘어났을 때 게시물 조회 성능이 급격히 안 좋아져 쿼리 개선, title, content 기준 인덱스를 이것저것 넣어보며 실험을 하고 있었습니다. 인덱스중 title, content 2개를 가지고 B-Tree 인덱스를 생성하려 했다가 문제가 발생했습니다. 구체적인 상황 (like DB, 코드 구조) 해축갤의 게시글 테이블의 구조는 다음과 같습니다. 주의해서 봐야 하는 부분은 content 가 varchar(1000) 라는 겁니다. 제가 사용하는 MySQL 버전은 8.0.36 이고 입력한 명령어는 다음과 같습니다. CREATE INDEX idx_title_content ON post (title(100), content(100)); 문제 위 쿼리..
2024.03.25 -
트랜잭션의 연산 중 ROLLBACK 이란?
롤백(rollback)이란 트랜잭션이 실패할 경우 실행되며, 전체 트랜잭션을 취소하는 연산이다. 트랜잭션을 실행하다 보면, 가끔 발생할 수 있는 여러 오류나 시스템의 예기치 않은 전원 차단 등으로 인해 트랜잭션이 실행 중 중단되는 경우가 있다. 이런 요인들로 인해 트랜잭션이 실행 중 중단되게 되면 트랜잭션의 ROLLBACK 연산이 일어난다고 보면 된다. 롤백은 트랜잭션을 트랜잭션 시작부터 또는 트랜잭션 내의 저장 지점까지 되돌린다. 롤백 트랜잭션을 사용하면 트랜잭션 시작부터 또는 저장 지점까지의 모든 데이터 수정을 지울 수 있으며, 트랜잭션에 할당된 자원도 해제된다. 트랜잭션 처리 시스템에서 롤백은 다음과 같은 경우에 발생할 수 있다: 명시적 요청(예: 사용자가 의도적으로 ROLLBACK 을 요청함) 처..
2023.03.16