통계 정보 MySQL 8.0 버전부터는 인덱스되지 않은 컬럼들에 대해서도 데이터 분포도를 수집하여 저장하는 히스토그램(Histogram) 정보가 도입되었음
옵티마이저 2
고급 최적화 옵티마이저 옵션은 조인 관련된 옵티마이저 옵션과 옵티마이저 스위치로 구분 -- // MySQL 서버 전체적으로 옵티마이저 스위치 설정 mysql> SET GLOBAL optimizer_switch='index_merge=on,index_merge_union=on,...'; -- // 현재 커넥션의 옵티마이저 스위치만 설정 m...
옵티마이저
옵티마이저 현재 대부분의 DBMS는 비용 기반 최적화(Cost-based optimizer, CBO) 풀 테이블 스캔 테이블의 전체 크기는 인덱스보다 훨씬 크기 때문에 테이블을 처음부터 끝까지 읽는 작업은 상당히 많은 디스크 읽기가 필요하다. 백그라운드 스레드를 의해 리드 어헤드(Read ahead) 빨리 읽을 수 있다. 리드 어헤드 : 어떤 영...
유니크 인덱스
유니크 인덱스 테이블이나 인덱스에 같은 값이 2개 이상 저장될 수 없음 NULL 은 저장될 수 있고 중복 허용한다. 유니크 인덱스 읽기 유니크나 세컨더리 인덱스나 읽어야 할 레코드 건수가 같다면 성능상의 차이는 없다. 인덱스 쓰기 유니크 인덱스의 키 값을 쓸 때는 중복된 값이 있는지 없는지 체크하는 과정이 한 단계 더 필요하다. 유...
클러스터링 인덱스
클러스터링 인덱스 InnoDB 스토리지 엔진만 지원 프라이머리 키에 적용되는 내용 프라이머리 키 값에 의해 레코드 저장 위치가 결정 프라이머리 키 기반의 검색이 매우 빠르지만 레코드의 저장이나 프라이머리 키의 변경이 상대적으로 느리다 B-Tree 와 비슷하지만 리프노드에 레코드의 모든 컬럼이 같이 저장돼 있음 InnoDB 스토...
MySQL 인덱스
디스크 읽기 방식 데이터베이스의 성능 튜닝은 어떻게 디스크 I/O를 줄이느냐가 관건이다 하드 디스크 드라이브(HDD)와 솔리드 스테이트 드라이브(SSD) SSD(Solid State Drive)는 기존 하드 디스크 드라이브에서 데이터 저장용 플래터(원판)를 제거(플래시 메모리를 장착) 디스크 원판을 기계적으로 회전 시킬 필요가 없어서...
java test
디스크 읽기 방식 데이터베이스의 성능 튜닝은 어떻게 디스크 I/O를 줄이느냐가 관건이다 하드 디스크 드라이브(HDD)와 솔리드 스테이트 드라이브(SSD) SSD(Solid State Drive)는 기존 하드 디스크 드라이브에서 데이터 저장용 플래터(원판)를 제거(플래시 메모리를 장착) 디스크 원판을 기계적으로 회전 시킬 필요가 없어서...
MySQL 데이터 압축
한줄 정리 페이지 압축은 되도록 지양, 테이블 압축은 꼭 필요하다면 split, 압축 성공률을 개발환경에서 테스트를 해보고 적용하자. 페이지 압축 페이지 압축은 Transparent Page Compression 이라 불리는데, MySQL 서버가 디스크에 저장하는 시점에 테이터 페이지가 압축되어 저장되고, 반대로 MySQL 서버가 디스크에서 데이터 ...
MySQL 데이터 암호화
한줄 정리 쓰지 않을 이유가 없는 것 같다. 그러나 시스템의 규모가 어느정도 커졌을 때, DBA가 있을때, 개인정보를 많이 다룰 때? 사용하는 것이 좋아보인다. MySQL 서버의 데이터 암호화 MySQL 서버의 암호화 기능은 데이터베이스 서버와 디스크 사이의 데이터 읽고 쓰기 지점에서 암호화 또는 복호화를 한다. 그래서 MySQL 서버에서 디스크 ...
MySQL 트랜잭션과 잠금
주의사항 시작부터 왠 주의사항인가 싶지만, 책에서 좋지 않은 케이스를 미리 말한다. ^^ 데이터베이스 커넥션 갯수 제한 등 자원이 제한적이기 때문에, 트랜잭션이 필요하지 않은 로직이 트랜잭션 범위에 포함되는 것을 주의 타 서버와의 통신 등 외부 인프라와 통신 로직을 포함하지 않도록 주의 반드시 트랜잭션을 묶어야하는 로직을 묶고 아니라면 별...
- 1
- 1 / 1