전체 글 (34) 썸네일형 리스트형 [MySQL] Optimizer의 최적화 방식에 대해 알아보자 Optimizer1. Optimizer란 무엇일까?mysql server의 mysql engine에 위치하며 통계 정보를 활용해서 가장 적은 비용이 드는 실행 계획을 세우는 역할을 한다. 2. 통계 정보란 무엇일까? mysql 5.7까지는 테이블과 index 정보를 가지고 실행 계획을 세웠지만mysql 8.0부터는 histogram이 도입되어서 column의 분포도를 활용할 수 있게 되었다. histogram은 2가지 타입이 있다.column 값별로 record 건수를 관리하는 singleton 방식과column 값의 범위를 균등한 갯수로 구분하여 record 건수를 관리하는 equi-height 방식이 있다.singleton 방식은 유니크한 값의 갯수가 적은 경우에 사용된다. column 분포도의 경.. [MySQL] InnoDB Storage Engiene에 대해서 알아보자 Buffer Pool1. Buffer Pool이란 무엇일까?disk에서 읽은 page를 메모리에 캐싱해 두는 공간이다.데이터 변경 작업을 메모리 상에서 먼저 수행하고 dirty page를 일괄적으로 disk에 flush 함으로써 I/O를 줄여준다. 2. Buffer Pool은 어떤 방식으로 데이터를 관리할까? page를 관리하기 위해 LRU List , Flush List , Free List를 사용한다.LRU List를 사용해서 자주 참조되는 page는 앞쪽으로 배치하고 덜 참조되는 page는 뒤쪽으로 배치하고 공간이 부족하면 뒤쪽에서부터 evict한다.Flush List를 사용해서 dirty page를 순차적으로 disk에 동기화한다.Free List는 재사용되는 page들을 모아놓은 리스트로 LRU.. [leetcode] Reverse Integer 문제32 비트 정수형 숫자가 주어지면 숫자를 앞뒤로 뒤집어서 반환해야한다.오버플로우가 발생하면 0을 반환한다. 조건64 비트 정수형을 사용하면 안된다. 해결방법1문자열로 변환하고 뒤집는다. 다시 숫자로 변환하는데 변환 실패시 0을 반환한다.fun reverse(x: Int): Int { val isNegative = x 방법2주어진 숫자를 10으로 나눠서 나온 끝자리 숫자를 새로운 숫자의 끝에 추가한다.MAX_VALUE와 MIN_VALUE와 비교할 때는 10으로 나눈 후 비교해서 오버플로우 여부를 따진다.fun reverse(x: Int): Int { var mutableX = x var num = 0 while(mutableX!=0){ val last = mutable.. 이전 1 ··· 6 7 8 9 10 11 12 다음