MySQL 스토리지 엔진 데이터베이스의 엔진으로, DB에 대해 데이터를 CRUD를 사용하는 기본 소프트웨어 컴포넌트이다. 즉, 데이터를 직접적으로 다루는 역할을 하는 것을 말하며, InnoDB가 가장 기본적이고 가장 범용적이다. 서버에서 지원하는 스토리지 엔진 서버에서 지원하는 스토리지 엔진을 확인하려면 SHOW ENGINES 명령어를 사용하면 된다. SHOW ENGINES\G *************************** 1. row *************************** Engine: PERFORMANCE_SCHEMA Support: YES Comment: Performance Schema Transactions: NO XA: NO Savepoints: NO ***************..
리두와 언두를 왜 배워야 하는 가? - 리두와 언두에 대한 설명에 들어가기에 앞서 ACID 특성이 대체 무엇인지를 먼저 보도록 함 [ATOMICITY 원자성] - 트랜잭션에 포함되는 데이터 변경은 전부 OK이거나 모두 NG라는 all or nothing임. - DBMS는 트랜젝션의 데이터 일부만을 변경할 수 없음 [OCNSISTENCY 일관성] - 트랜잭션에 의해 데이터 간의 일관성이 어긋나서는 안됨 - 고객 테이블의 데이터가 변경됐는데도 고객 테이블의 인덱스 데이터는 변경되지 않음 [ISOLATION 고립성] - 트랜잭션끼리는 고리보디어 있으며 독리보디어 있다는 의미 - 어떤 트랜잭션을 단독으로 실행했거나 다른 트랜잭션과 동시에 실행하더라도 결과는 같아야 한다는 것 [DURABILITY 지속성] - 커..
데이터 베이스에 락이 필요한 이유 - UPDATE를 진행할 때 다중의 오라클 클라이언트가 동시에 같은 컬럼의 데이터를 변경 시 데이터가 의도하는대로 변경하기 어려움 - 이런 문제가 발생한 원인을 찾아보면 데이터를 확보하지 않았기 때문이라는 것을 알 수 있음. - 락의 본질은 이렇게 다중 처리를 실현하기 위해 처리를 보호하는 것 - 행 락이 풀리는 시점은 커밋 또는 롤백할 때 풀림 - UPDATE문 등의 DML에는 자동으로 락을 걸어버림대기와 락 대기 - 대기는 실제로 기다린다라는 것을 표시하는 것 뿐임 - 대기에는 '처리할 것이 없어서 쉬고 있는 대기', '이유가 있어 어쩔수 없이 하는 대기, 이상 상태 등 쓸데없이 SQL을 기다리게 하는 대기'가 있음 - 전자가 아이들 대기..
가변 길이 데이터를 관리하기 위한 프로그램 [가변 길이 데이터는 관리가 힘듬] 1. 데이터를 변경할 때 문제가 있을 수 있음. 2. 동시에 처리가 불가능 - 순서대로만 가능 3. 데이터 관리나 I/O가 힘듬 - 양이 많아지면 힘듬 4. 사용하지 않는 공간의 관리가 힘듬 - 데이터 없는 공간을 관리해야하나 양이 많아지면 힘듬 [해결] 1. 관리 및 I/O의 효율을 고려해 공간을 어느 정도의 크기로 뭉쳐서 할당 - 각 테이블의 집합으로 뭉쳐서 관리 2. 데이터 변경에 필요한 공간을 확보해둠 3. 비어 있는 공간을 관리 - 어느 정도의 크기마다 데이터 변경용 공간을 준비해둠오라클의 데이터 구조 - 오라클의 데이터 구조는 물리 구조 및 논리 구조가 있음. - 물리 구조 - 데이터 파일 등의 OS에서 보이는 구조..
커넥션과 서버 프로세스의 생성 애플리케이션의 커넥션을 왜 배워야 하는가? - 애플리케이션의 커넥션을 최적화 하는 것만으로도 DB의 성능을 더욱 끌어올릴 수 있음. - 애플리케이션과 오라클이 네트워크를 통해서 통신하는 경우가 많음 - 그로인해 설정으로 인한 장애가 쉽게 발생하며, 간단한 장애일 때는 아키텍처를 이해할 시 쉽게 해결할 수 있음오라클의 커넥션 동작 - 소켓 - 오라클은 네트워크 통신 수단으로서 대부분 TCP/IP의 소켓을 사용 - 소켓을 전화라고 생각하면 이해하기 쉬움 - 네트워크 안에는 여러개의 소켓이 존재함 - 틀리지 않고 커넥션 하기 위해서 소켓은 주소와 포트를 조합한 번호로 식별이 가능 [커넥션 동작] 1. 서버는 특정 포트번호로 오는 것을 기다림(listen 상태) 2. 클라이언트는 ..
오라클의 기동과 정지 오라클의 기동/정지 개요 [창고 회사 오라클의 업무 시작 흐름] 1. 사원 출근 2. 창고에 관한 정보(관리 대장)를 조사 3. 창고를 대충 훑어본 뒤 문제 없을 시 창고를 열어 업무 시작 [창고 회사 오라클의 업무 종료 흐름] 1. 업무(SQL이나 트랜잭션)가 끝나는 것을 기다림 | 급할 때는 업무 처리 중지 가능 2. 작업장의 물건(캐시상의 데이터)을 창고(파일)에 정리 | 급할 때는 작업장의 물건들을 정리하지 않음 3. 사원이 퇴근(프로세스 종료)오라클 기동 4가지 상태 오라클의 작업 흐름 - 퇴근 : 정지 상태 - 출근 : 백그라운드 프로세스의 생성과 공유메모리의 확보를 의미 - 관리대장 읽음 : 컨트롤 파일(DB의 구성정보가 적혀 있는 파일로서, DB 파일의 경로 확인 가능..
SQL문 분석과 공유 풀 처리방법의 생성(분석)과 생성 후 캐시하는 저장소(공유 풀) SQL문의 데이터 처리 순서 - SQL문에서는 데이터의 조건이나 관계를 기술 - SELECT A FROM B WHERE C = 1 - 오라클은 힌트를 활용해서 어느정도의 처리순서를 지시함. - 옵티마이저가(파서)가 SQL문을 분석하고 플랜이라고 하는 처리 방법을 생성 서버 프로세스와 분석 - 서버 프로세스는 SQL문의 처리를 최우선으로 하는 프로세스 - 오라클에서 분석은 SQL문을 분석하고 어떤 알고리즘으로 처리할 지를 가리킴 - 비용 기반 알고리즘 : 처리 시간이나 I/O 횟수가 가장 작다고 생각되는 처리방법이 최상의 알고리즘[분석 그림] 비용의 수치 통계정보 - 테이블의 데이터 건 수, 데이터 양, 데이터 최댓값과 ..
- Total
- Today
- Yesterday
- 복사 팩토리
- package-private
- effectivejava
- try catch finally
- 점층적 생성 패턴
- 생성자
- 김영한
- 정적팩터리메서드
- ifPresent
- 팩토리 메소드 패턴
- Spring
- try with resources
- 연관관계
- 이펙티브 자바
- Effective Java
- 이펙티브자바
- mustache
- 빌더 패턴
- 자바8
- java8
- junit
- 인프런
- java
- springboot
- 빈 순환 참조
- 스프링부트
- jdk버전
- @Lazy
- JPA
- flatMap
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |