Database - 쿼리 실행계획 분석해보기
·
[Database]
들어가며대용량 데이터 환경에서 데이터베이스 쿼리 성능은 시스템 전체의 성능을 좌우하는 핵심 요소입니다. 수 GB에서 TB 단위의 데이터를 다루는 실무 환경에서는 인덱스를 제대로 활용하지 못하면 조회 자체가 불가능한 수준의 성능 저하가 발생합니다. 이 글에서는 MariaDB의 쿼리 실행 계획을 분석하고 최적화하는 방법을 다룹니다.실행 계획이란?실행 계획(Execution Plan)은 데이터베이스 옵티마이저가 SQL 쿼리를 처리하기 위해 선택한 구체적인 실행 방법을 보여주는 정보입니다. 쿼리가 어떤 인덱스를 사용하고, 어떤 조인 순서를 따르는지 등을 상세히 알려줍니다. 데이터베이스 쿼리 처리 과정1. 쿼리 파서 → 2. 전처리기 → 3. 옵티마이저 → 4. 쿼리 실행기실행 계획은 이 과정 중 옵티마이저 단계..
Database 트랜잭션 개념과 4가지 특징 ACID
·
[Database]
📌 개요Database를 공부하다보면, 필연적으로 트랜잭션이라는 용어를 접하게 됩니다. ( 동시성은 덤.. ) 그동안 대충 느낌적인 느낌으로만 알고있었지, 자세하게는 설명할 수 없을 것 같아서 이번 기회에 트랜잭션을 한 번 제대로 알아보고자 합니다!  ❓ 트랜잭션이란?트랜잭션(Transaction)이란, Database의 상태를 변환시키는 더이상 분할이 불가능한 하나의  논리적인 단위 뜻합니다. 분할이 불가능한, 논리적인 단위.. 사실 처음 들었을 땐 다소 난해한 정의라고 받아들일 수 있을 것 같습니다. 하나하나 풀어서 좀 더 쉽게 설명 드리겠습니다! 흔히 "은행 송금"이라는 대표적인 예시가 있지만, 다르게 표현해보겠습니다. 트랜잭션이란? (쉬운 예시) A와 B는 현재 결투중에 있습니다.A 와 B의 체..
[Database] CDC (Change Data Capture) 란 무엇일까?
·
[Database]
📌 개요개인적으로 연습삼아 MySql DB에서 Oracle DB로 마이그레이션을 진행한 적이 있습니다. 이때, 기존 MySql 로 서비스를 운영중일 때, 데이터는 계속 바뀔텐데 해당 데이터들은 어떻게 데이터를 옮기지?라는 고민을 하게 되었는데요!  해당 고민을 만족시키는 개념이 바로 CDC 입니다.이번 포스팅에서는 CDC 라는 개념에 대해 살펴보고자 합니다! ❓ CDC (Change Data Capture) 란? CDC는 쉽게 말해, INSERT, UPDATE, DELETE 등 DB 데이터에 대해서 변경사항을 실시간/준실시간으로 추적하고 캡처하는 기술입니다!  ❓ 왜 사용하는걸까? CDC 의 사용이유로는 크게 3가지로 꼽을 수 있을 것 같습니다. 1. 실시간 데이터 동기화가 가능하다 : DB to DB..
[Database] Index란?
·
[Database]
📌 개요데이터베이스를 사용한다면 반드시 알아야 할 개념 중 하나인 인덱스(Index) 에 대해서 알아보고자 합니다! 조회 성능 개선을 위해선 인덱스를 잘 써야한다고 하던데.. 과연 인덱스란 무엇일까요?   ❓ 인덱스란?  인덱스는 쉽게 말해, RDB안에서 조회할 때 결과를 빠르게 추출할 수 있도록 만들어진 '데이터베이스 객체' 라고 생각하시면 됩니다. 즉, INDEX 라는 객체 테이블을 따로 생성하여, 조회할 때 해당 테이블 내에서 찾게하라! 라고 생각하시면 좋을 것 같습니다.  그럼 인덱스를 한번 직접 생성해볼까요?    ⭐ 인덱스 생성인덱스 생성 방법은 아래와 같은 명령어로 아주 간단하게 생성할 수 있습니다.CREATE INDEX {원하는 인덱스 이름} ON {테이블 명(컬럼 명)}  ⭐ 인덱스 확..
Database - NoSQL 에 대해서 알아보자!
·
[Database]
개요추후, Elastic Search를 들어가기에 앞서, NoSQL의 개념부터 다잡고자 해당 포스팅을 하게 되었습니다.Not Only SQL을 뜻한다는 NoSQL.. 그렇다면 과연 무엇일까요?  ❓ NoSQL 이란?결론부터 말씀드리자면, NoSQL 은 Database 의 개념입니다. NoSQL 이란, No! SQL! 이 아니라  Not Only SQL ! 를 뜻합니다.이는 의미의 차이로써도 반드시 착각하면 안된다는 점으로 강조를 드렸는데요. SQL을 사용하지 않겠다! 가 아닌, SQL만으로는 부족하니까 이뿐만 아니라 이것도 써야지~ 라는 의미가 내포되며 탄생되었습니다. NoSQL은, 규칙성을 준수하는 RDBMS 와 다르게, 다양한 형태로 데이터가 저장되는 저장소 입니다.즉, NoSQL은 "DB(DBMS)..