Database

부등호, IN, LIKE 와 같은 곳에서 사용되는 컬럼은 인덱스를 사용했을 때 성능이 향상될 가능성이 높다
PK = 클러스터링 인덱스원본 데이터 자체가 정렬되는 인덱스기본적으로 인덱스가 적용됌 UNIQUEUNIQUE 제약 조건을 추가하면 자동으로 인덱스가 생성됌조회 성능 향상 EXPLAIN (실행계획)SQL 문을 어떤 방식으로 어떻게 처리할 지를 계획한 걸 의미# 실행 계획 조회하기EXPALIN [SQL문]# 실행 계획에 대한 자세한 정보 조회하기EXPLAIN ANALYZE [SQL문] type 의미ALL: 풀 테이블 스캔인덱스를 활용하지 않고 테이블을 처음부터 끝까지 전부 다 뒤져서 데이터를 찾는 방식index: 풀 인덱스 스캔인덱스 테이블을 처음부터 끝까지 다 뒤져서 데이터를 찾는 방식인덱스 테이블 전체를 읽어야 하기 때문에 아주 효율적이라고 볼 수는 없음const: 1건의 데이터를 바로 찾을 수 있는 경..
MySQL 구조클라이언트가 DB에 SQL 요청을 보냄MySQL 엔진에서 옵티마이저가 SQL문을 분석한 뒤 빠르고 효율적으로 데이터를 가져올 수 있는 계획을 세운어떤 순서로 테이블에 접근할 지, 인덱스를 사용할지, 어떤 인덱스를 사용할 지 등을 결정 옵티마이저가 세운 계획을 바탕으로 스토리지 엔진에서 데이터를 가져온다DB 성능 문제 대부분의 원인은 스토리지 엔진으로부터 데이터를 가져올 때 발생데이터를 찾기가 어려워서 오래걸리거나, 가져올 데이터가 너무 많아서 오래 걸림MySQL 엔진에서 정렬, 필터링 등의 마지막 처리를 한 뒤에 클라이언트에게 SQL 결과를 응답한다 SQL 튜닝의 핵심스토리지 엔진에서 데이터를 찾기 쉽게 바꾸기스토리지 엔진으로부터 가져오는 데이터의 양 줄이기
성능 저하 요인동시 사용자 수의 증가데이터 양의 증가비효율적인 SQL문 작성 DB성능이 느려졌다면 서비스를 사용할 때 가장 먼저 체감할 수 있음.서비스를 사용하는 입장에서 조금만 답답하고 느껴지면 바로 이탈하게 되고 사용자 이탈은 회사의 손실로 이어지게 됌
RedisRemote Dictionary Server의 약자키-값 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템인메모리에 모든 데이터를 저장 주요 사용캐싱세션 관리실시간 분석 및 통계메시지 큐지리공간 인덱싱속도 제한실시간 채팅 및 메시징 기본 명령어set ryu:name "ryu ryu"set ryu:hobby guitarkeys *del ryu:nameset ryu:pet dog ex 30 => TTL 정하기flushall => 모든 데이터 삭제 Key 네이밍 컨벤션콜론 ":" 을 활용해 계층적으로 의미를 구분해서 사용users:100:profile => 사용자들 중에서 PK가 100인 사용자의 프로필 데이터를 캐싱할 때 사용하는 전략Cache Asi..
· Database
키참조 무결성 : 참조할 수 없는 외래키 값을 가질 수 없음개체 무결성 : 기본키에 속하는 속성은 비어 있을 수 없음  테이블 vs 릴레이션테이블 : 데이터베이스의 데이터가 저장된 물리적 구조를 가리키는데 주로 쓰이는 용어릴레이션 : 데이터베이스 모델링에서 주로 쓰이는 용어  트랜잭션이 가지는 속성ACID원자성 (atomicity) : 하나의 트랜잭션은 모두 실행되거나 전혀 실행되지 않아야 함일관성 (consistency) : 트랜잭션의 실행 전후에 데이터베이스 상태가 일관되어야 함독립성 (isolation) : 여러 트랜잭션이 병렬 실행되는 경우에도 서로 간섭하지 않도록 격리 되어야 함영구성 (durability) : 완료된 트랜잭션의 실행 결과는 데이터베이스에 영구 보존되어야 함 ORM (Object..
류가든
'Database' 카테고리의 글 목록