목록SQL (2)
CheerUp_Cheers
마리아 DB엔진Mysql, MariaDB는 InnoDB를 사용하고 있음.MVCC(Multi-Version Concurrency Control) 방식으로 인해 논리피터블 리드와 유사한 상황이 발생 가능.MVCC?Multi Version Concurrency Control의 약자로 다중 버전 동시성 제어라고 한다.Locking의 성능 문제 때문에 탄생하게 되었다.Lock을 사용하지 않고 일관된 읽기를 제공하는 것이 주 목적이다.사용자는 MVCC에서 데이터에 접근할 때 Snapshot을 읽는다.이 Snapshot에 대해선 변경이 완료(commit) 될 때 까진 다른 사용자는 볼 수 없다.사용자가 데이터를 업데이트하면 새로운 버전의 데이터를 버퍼에 넣는다.이전 버전의 데이터는 undo영역에 생성된다.사용자는 l..
SQL 최적화의 원리 POINT 1. 옵티마이저와 실행계획 [1] 옵티마이저란? - SQL개발자가 SQL을 작성하여 실행 시, 옵티마이저는 SQL을 어떻게 실행할 것인지 계획. -> SQL 실행계획을 수립과 실행(동일 결과도 실행계획에 따라서 성능 달라짐) -> SQL 실행계획과 실행을 하는 소프트웨어 [2] 옵티마이저 특징 - 여러 실행 계획중 최저 비용의 계획을 선택하여 SQL 실행. - 데이터 딕셔너리에 있는 오브젝트 통계, 시스템 통계등의 정보를 사용해서 예상비용산정. [3] 옵티마이저 필요성 - 다음과 같은 경우 비용이 더 커짐 1) EMP 테이블 셀렉 2) AND (찾은 행과 동일한 것을 찾기 위해) 3) DEPT 테이블 셀렉 -> 반대로 했을 경우, 더욱 싼 비용으로 가능 - 비효율적인 실행..