전체 글

함께 성장하는 개발자
데이터베이스

[MySQL] Index가 사용되지 않는 6가지 경우 ( with 10만 건 예제 데이터를 통한 실습 )

🐳 사전 지식먼저 인덱스가 언제 사용되지 않는지 알기에 앞서 인덱스가 '사용' 된다는 의미를 이해할 필요가 있다.인덱스가 사용되는 방식조회시에 인덱스는 크게 두 가지 방법으로 사용된다.인덱스가 사용되는 두 가지 방법에 대해 살펴보자1. 작업 범위 결정 조건작업 범위 결정 조건은 말 그대로 작업의 범위를 결정하는 조건이다.쉽게 생각하면 조회의 범위를 좁히는데 사용되는 조건이다. 작업 범위 결정 조건의 특징은 아래와 같다.많으면 많을 수록 성능 향상에 영향을 준다인덱스를 효율적으로 사용했다는 의미이다.2. 체크 조건 / 필터링 조건체크 조건은 조회한 데이터를 사용자가 지정한 조건에 맞게 결과를 필터링 한다는 의미이다. 예를 들어 1~10 번 까지 10개의 데이터를 조회한 후에 홀수번 데이터만 사용한다고 하..

데이터베이스

[MySQL] Index, B-Tree란 ? ( 인덱스 키 값 계산 )

🐳 1. 인덱스란 ?인덱스, 영어로는 색인이라는 의미이다.우리가 책에서 필요한 내용을 찾기 위해 목차를 보는 것처럼인덱스 또한 데이터베이스에서 우리가 찾는 데이터를 쉽게 찾을 수 있도록 해준다. 여기서 중요한 것은 데이터를 쉽게 찾을 수 있도록 해준다는 것이다.데이터를 삽입, 수정, 삭제를 도와주는 것이 아니다. 위에서 설명한 예시처럼 인덱스는 데이터의 읽기 속도를 높이는 기능을 의미한다. 그렇다면 인덱스의 단점은 무엇이 있을까 ?공학도라면 항상 해당 기술의 장단점을 생각해봐야 할 것이다. 인덱스는 저장하려는 Column 값을 항상 정렬된 상태로 유지해야 한다.그렇다는 것은 새로운 데이터를 삽입하는 경우 다시 데이터를 정렬해야 한다는 것이다.즉 인덱스는 저장 성능을 저하시킨다. 결론적으로 인덱스는 저장..

TypeORM

[TypeORM] 복합키 (다중컬럼 PK) 지정하기

🐳 문제계층형 데이터 구조를 저장하기 위해 Custom Closure Table을 구현하는데PK값이 없다는 아래와 같은 에러가 발생했다.MissingPrimaryColumnError: Entity "CategoryClosure" does not have a primary column. Primary column is required to have in all your entities. Use @PrimaryColumn decorator to add a primary column to your entity.  📋 Entity 코드작성한 Entity 코드는 아래와 같다.@Entity()@Unique(['ancestorId', 'descendantId'])export class CategoryClosure..

데이터베이스

[MySQL] 잠금의 종류와 기능

• 본 글은 도서 Real MySQL 8.0을 참고해 작성한 글입니다.  🐳 잠금(Lock)이란 ?잠금은 여러 커넥션 간의 동시성을 제어하기 위한 기능이다. 예시를 들어보자 !유저 A와 유저 B가 동시에 데이터 X를 UPDATE 하려고 한다면 어떻게 되야 할까 ?단계유저 A유저 B1단계데이터 X 업데이트를 시작함. 2단계데이터 X에 대한 잠금을 획득함. 3단계데이터 X를 성공적으로 업데이트. 4단계 데이터 X 업데이트를 시도함.5단계 데이터 X에 접근 불가, 잠금 대기 중. 유저 A가 해당 데이터 레코드 X에 대해 잠금을 획득하면 락이 해제 되기 전까지 다른 유저는 해당 데이터를 업데이트 할 수 없다. 위와 같이 같은 레코드에 대해 동시에 수정하려고 하는 경우 발생하는 동시성 문제를 제어하기 위한 기능..

개발 지식

[인코딩 규칙] ASCII, UNICODE, UTF-8, UTF-16

ASCII Code 7bit 코드 체계 숫자 하나를 문자 하나에 대입한 것 7bit이기 때문에 나타낼 수 있는 문자가 최대 128개임 Laitn어 권에서는 알파뱃,숫자,특수기호를 다 나타내는데 128개면 충분했기 때문에 ASCII를 사용하게 됨 UNICODE 컴퓨터가 세계화 되면서 다양한 문자 체계를 표현하기에 7bit는 모자르게 됨 ( 심지어 중국의 한자는 10만 개가 넘음 ... ) 다양한 문자들을 표현하기 위해 16bit 기반의 UNICODE를 만들게 됨 그 중에서 한글은 조합형, 완성형 두 가지 코드체계를 두고 갑론을박이 있었으나 현재는 완성형이 주류가 됨 조합형 : ㅈㅗㅎㅏㅂㅎㅕㅇ과 같이 자음 + 모음 형식으로 코드를 표현함 완성형 : 완 성 형 과 같이 한 개의 글자를 하나의 숫자에 대입함 ..

후뿡이
개발자 '왜?'길 인생