
인덱스란 데이터를 효율적으로 찾기 위한 목차이다.이 정도는 인덱스에 궁금증을 가지고 방문한다면 모두 아는 내용일 것이다. 그렇다면 MySQL에서 인덱스는 어떻게 생기고 조회되길래 빠른 것일까?인덱스란?RealMySQL 의 표현을 그대로 가져온다면,책의 '찾아보기' = 색인(인덱스)책의 '내용' = 데이터 레코드책의 '페이지번호'= 레코드 주소값결국 인덱스를 통하여 필요한 데이터가 저장된 위치로 빠르게 접근한다는 이야기다. DBMS의 인덱스는 SortedList와 비슷하다.인덱스 : 항상 정렬하여 저장 -> SELECT 가 빠름데이터 파일은 ArrayList 와 비슷하다.데이터 파일 : 들어오는 순서대로 저장인덱스는 정렬하여 저장된다. 때문에 데이터가 추가 될 때마다 정렬하면 쓰기 성능이 매우 나쁘다.인덱..

JPA를 사용한다면 열 번, 백번 꼭 들어봤을 단어들이다.즉시로딩과 지연로딩을 제대로 이해하기 위해서 프록시 개념은 필수적이다.즉시로딩(EAGER)의 문제점엔티티들은 서로 복잡한 연관관계를 가지고 있다.여기 "Family" 와 "Cat" 이 1:N 연관관계를 가지고 있다.Cat1의 이름을 출력하고 싶을 뿐인데, Family가 계속 데이터베이스에서 매번 즉시 조회 되면 어떨까?고양이 한 마리 이름 조회에 필요 이상의 메모리를 사용하게 되고 성능적인 이슈가 발생할 수 있다. 지연 로딩(LAZY) 의 본체여기서 지연로딩이 사용된다.Cat을 조회하고 연관된 Family는 나중에 조회한다는 의미로 지연된 로딩이다. 하지만 연관관계가 있다면 Cat 클래스에는 Family 가 필요하다. 객체지향적으로 우리는 cat...

JPA 를 활용하면 필드 일부를 수정하는 경우 @Transactional 을 함께 사용하여 UPDATE 쿼리를 요청할 수 있다.트랜잭션의 커밋 단위로 데이터베이스가 변경되며, 수정 사항이 있을 때마다 save() 를 할 필요가 없어진다.이때 활용하는 것이 변경감지, 더티 체킹이다. 엔티티 매니저 (Entity Manage)엔티티 매니저는 엔티티를 저장하고, 수정하고, 삭제하고, 조회하는 등 엔티티와 관련된 모든 일을 처리한다.EntityManageFactory 를 활용하여 엔티티 매니저를 생성한다.엔티티 매니저는 엔티티를 영속성 컨텍스트에서 보관하고 관리한다. 영속성 컨텍스트 (Persistence context)직역하면 ‘엔티티를 영구 저장하는 환경’ 이다.영속성 컨텍스트는 논리적인 개념에 가깝고 눈에..

호텔 예약 서비스를 만들며 어떠한 방법으로 동시성 처리를 해야 하는 가에 대한 고민이 생겼다.단 하나 남은 재고를 보장하기 위해 동시적으로 접속하는 사용자의 요청은 어떻게 처리해야 하는가?데이터베이스는 어떻게 동작하길래 이러한 동시성 문제가 발생하는 것일까?Dateabase Lock?Database Lock 이란 데이터베이스에서 여러 트랜잭션이 동시에 같은 데이터에 접근할 때, 데이터의 무결성을 보장하기 위해 사용되는 메커니즘이다. 데이터베이스 개념 잡기 데이터 무결성 이란?데이터의 정확성, 일관성, 유효성이 유지되는 것을 의미한다.데이터 무결성 제약조건개체 무결성 (Entity Integrity): 모든 테이블은 고유하며 Not Null 한 고유 키(PK)를 가진다.참조 무결성 (Referentia..
- Total
- Today
- Yesterday
- 트랜잭션
- 인프런
- 프로젝트기획
- http
- queryDSL
- datalock
- Lazy
- Article
- MYSQL
- 리팩토링
- 동시성
- 스파르타
- 마이크로서비스
- java
- Database
- MSA
- 트러블슈팅
- mock
- TDD
- Spring
- 객체지향
- proxy
- Solid
- 기술도서
- JPQL
- 더티체킹
- JPA
- 코딩테스트
- feignclient
- 클린코드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |