MySQL 서버의 통계 정보 MySQL 5.6 버전부터는 InnoDB 스토리지 엔진을 사용하는 테이블에 대한 통계 정보를 영구적으로 관리할 수 있도록 개선되었습니다. MySQL 5.5 버전까지는 각 테이블의 통계 정보가 메모리에만 관리되고, SHOW INDEX 명령으로만 테이블의 인덱스 컬럼의 분포도를 볼 수 있었습니다. 이처럼 통계 정보가 메모리에 관리될 경우 MySQL 서버가 재시작되면 지금까지 수집된 통계 정보가 모두 사라집니다. MySQL 5.6 버전부터는 각 테이블의 통계 정보를 mysql 테이터베이스의 innodb_index_stats 테이블과 innodb_table_stats 테이블로 관리할 수 있도록 개선되었습니다. 이렇게 통계 정보를 테이블에 관리함으로써 MySQL 서버가 재시작되어도 기..
쿼리 실행 절차 사용자로부터 요청된 SQL 문장을 쪼개어 MySQL 서버가 이해할 수 있는 수준으로 파스 트리를 만듭니다. SQL의 파스 트리의 정보를 확인하면서 어떤 테이블부터 읽고 어떤 인덱스를 이용해 테이블을 읽을지 선택합니다. 두 번째 단계에서 결정된 테이블의 읽기 순서나 선택된 인덱스를 이용해 스토리지 엔진으로부터 데이터를 가져옵니다. 첫 번째 단계 첫 번째 단계를 "SQL 파싱" 이라고 하며, MySQL 서버의 "SQL 파서" 라는 모듈로 처리합니다. SQL 문장이 잘못되었다면 이 단계에서 걸려집니다. 또한 이 단계에서 "SQL 파스 트리"가 만들어집니다. MySQL 서버는 SQL문장 자체가 아닌 SQL 파스 트리를 이용해 쿼리를 실행합니다. 두 번째 단계 두번째 단계에서는 첫 번째 단계에서 ..
랜덤 I/O와 순차 I/O 랜덤 IO 랜덤 I/O라는 표현은 하드 디스크 드라이브(HDD)의 플래터(원판)를 돌려서 읽어야 할 데이터가 저장된 위치로 디스크 헤더를 이동시킨 다음 데이터를 읽는 것을 의미합니다. 순차 I/O는 3개의 페이지를 디스크에 기록하기 위해 1번 시스템 콜을 요청했지만 랜덤 I/O는 3개의 페이지를 디스크에 기록하기 위해 3번 시스템 콜을 요청합니다. 즉 디스크에 기록해야 할 위치를 찾기 위해 순차 I/O는 디스크의 헤드를 1번 움직였고, 랜덤 I/O는 디스크 헤드를 3번 움직였습니다. 디스크에 데이터를 읽고 쓰는데 걸리는 시간은 디스크 헤더를 움직여서 읽고 쓸 위치로 옮기는 단계에서 결정됩니다. 즉 쉽게 말하면 디스크의 성능은 디스크 헤더의 위치 이동 없이 얼마나 많은 데이터를 ..
트랜잭션과 잠금 트랜잭션은 작업의 완전성을 보장해주는 기능입니다. 즉 논리적인 작업을 모두 완벽하게 처리하거나 또는 처리하지 못하는 경우에는 롤백해서 작업의 일부만 적용되는 현상이 발생하지 않도록 방지해주는 기능입니다. 잠금이란 여러 커넥션에서 동시에 동일한 레코드를 요청할 경우 순서대로 한 시점에는 하나의 커넥션만 변경할 수 있도록 해주는 역할을 합니다. 잠금은 동시성을 제어하기 위한 기능이고, 트랜잭션은 데이터의 정합성을 보장하기 위한 기능입니다. 격리 수준이라는 것은 하나의 트랜잭션 내에서 또는 여러 트랜잭션 간의 작업 내용을 어떻게 공유하고 차단할 것인지 결정하는 레벨을 의미합니다. InnoDB와 MyISAM 스토리지 엔진의 트랜잭션 비교 아래 예제를 살행하면 모두 프라이머리 키 중복으로 인하여 ..
- Total
- Today
- Yesterday
- spring boot redisson sorted set
- java ThreadLocal
- spring boot poi excel download
- redis 대기열 구현
- spring boot 엑셀 다운로드
- @ControllerAdvice
- spring boot redisson 분산락 구현
- space based architecture
- redis sorted set으로 대기열 구현
- JDK Dynamic Proxy와 CGLIB의 차이
- spring boot redis 대기열 구현
- transactional outbox pattern
- transactional outbox pattern spring boot
- microkernel architecture
- 레이어드 아키텍처란
- redis sorted set
- 자바 백엔드 개발자 추천 도서
- spring boot excel download oom
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- spring boot excel download paging
- 공간 기반 아키텍처
- 트랜잭셔널 아웃박스 패턴 스프링부트
- java userThread와 DaemonThread
- 람다 표현식
- polling publisher spring boot
- 서비스 기반 아키텍처
- service based architecture
- spring boot redisson destributed lock
- pipe and filter architecture
- pipeline architecture
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |