Database 86

[MySQL][SQL] 4-1. Inner Function: Single Row

1. Number함수설명예시결과ABS(n)절대값 반환ABS(-5)5CEILING(n)올림CEILING(3.2)4FLOOR(n)내림FLOOR(3.9)3ROUND(n,i)반올림 (소수 i자리)ROUND(3.456,2)3.46TRUNCATE(n,i)버림 (소수 i자리)TRUNCATE(3.456,2)3.45GREATEST(n1,n2,…)가장 큰 값GREATEST(3,7,5)7LEAST(n1,n2,…)가장 작은 값LEAST(3,7,5)3POW(x,y)x의 y제곱POW(2,3)8MOD(n,m)나머지MOD(10,3)1 2. String함수설명예시결과ASCII(s)첫 글자의 ASCII 코드 반환ASCII('A')65CONCAT(s1,s2,…)문자열 연결CONCAT('Hello',' ','World')Hello Worl..

Database/Mysql 00:46:15

[MySQL][SQL] 2. DML

0. Null값이 없음 (0, 빈 문자열 ❌)✅ Null과 연산하면 결과도 Null 임 표) Null 표현더보기표현결과NULL = 1NULL10 / NULLNULLNULL AND TRUENULLNULL OR TRUETRUENOT NULLNULL 표) Null 함수더보기SELECT IFNULL(salary, 0) FROM emp; SELECT COALESCE(col1, col2, 0) FROM table1;SELECT salary / NULLIF(bonus, 0);SELECT * FROM emp WHERE salary IS NULL; # ⚠️ = NULL 사용불가SELECT * FROM emp WHERE salary IS NOT NULL; 함수설명특징IFNULL(a,b)NULL이면 b 반환2개 값COALE..

Database/Mysql 00:30:46

[MySQL][SQL] 1. DDL

1. DDL데이터베이스 객체의 구조를 정의하거나 변경하는 명령어 특징자동 커밋TCL 불가 (ROLLBACK ❌)구조 변경 명령 2. 종류구분명령어설명생성CREATEDB / 테이블 생성변경ALTER컬럼 추가/수정/삭제삭제DROP객체 자체 삭제전체삭제TRUNCATE테이블 데이터 전체 삭제이름변경RENAME객체 이름 변경 create) character set더보기CREATE DATABASE mydbCHARACTER SET utf8mb4COLLATE utf8mb4_general_ci;문자를 어떤 인코딩 체계로 저장할지 정의 create) collation더보기CREATE DATABASE mydbCHARACTER SET utf8mb4COLLATE utf8mb4_general_ci;문자열을 비교/정렬하는 규칙 정..

Database/Mysql 2026.03.03

[MongoDB Kafka Connector] 3-1. Source Connector: Fundamentals

1. Change Streams애플리케이션이 실시간 데이터 변경 내용을 바로 받아볼 수 있게 하는 기능구분내용AggregationAggregation Pipeline을 사용해 Change Stream 이벤트를 원하는 형태로 가공 가능Change Event Structure - 메타데이터(_id, operationType, ns, documentKey, updateDescription)- 변경 내용* publish.full.document.only 옵션: 변경 내용만 Kafka Connector로 전송 (메타데이터 제외)Performance인덱스 사용 불가 (oplog가 특수한 capped 컬렉션이라 인덱스 불가)→ 고속 스토리지 사용, 충분한 캐시 메모리(WiredTiger cache) 확보 Source..

Database/MongoDB 2025.08.10

[MongoDB] MongoDB Replication

1. How does replication work in MongoDB?복제데이터를 여러 복제본으로 만들어서 물리적으로 분리된 서버들에 보관하는 것 Replica Set하나의 Primary 노드 (쓰기 연산)여러 Secondary 노드 (읽기 연산) ElectionPrimary 노드가 다운되면, 선거를 통해 Secondary 노드 중 하나가 새로운 Primary 노드로 승격됨장애 났던 Primary 노드가 복구 되면, Secondary 노드로 복귀 및 동기화를 수행함 2. How do I enable replication in MongoDB사전 준비서버 3대 이상 필요각 서버는 기본 포트(27017)로 통신 가능해야 함private ip로 서로 통신 가능해야 함 (외부 접근 차단) 복제 시작mongod ..

Database/MongoDB 2025.08.05

[Real MySQL] 4-2. 아키텍쳐: InnoDB 스토리지 엔진 아키텍쳐 (2)

백은빈, 이성욱 님의 "Real MySQL" 책을 정리한 포스팅 입니다. 6. InnoDB Buffer Pool디스크의 데이터 파일이나 인덱스 정보를 메모리에 캐시해두는 공간 버퍼링쓰기 작업을 메모리에 먼저 저장 후, 일괄 처리로 디스크에 기록 시스템 변수변수명설명innodb_buffer_pool_size버퍼 풀 전체 사이즈를 설정함. (동적으로 조정 가능)innodb_buffer_pool_instances버퍼 풀을 여러 인스턴스로 나누어 병렬 처리- 기본 8개 (버퍼 크기가 1GB 이하면 1개만 사용) 구성 요소페이지InnoDB가 디스크에서 데이터를 읽거나 메모리에 저장할 때 사용하는 기본 단위(블록)하나의 페이지 안에는 여러 개의 레코드(행) 또는 인덱스 정보가 들어갈 수 있음기본값은 16KB..

Database/Mysql 2025.06.08

[Redis] 3-4. Introduction to Redis: Pub/Sub

1. Pub/Sub메시지를 채널을 통해 발행자와 구독자가 느슨하게 연결하는 구조발행자는 단순히 메시지를 채널에 발행구독자는 관심 있는 채널을 구독하여 해당 메시지를 수신서로 존재를 몰라도 메시지 통신이 가능하여 확장성과 유연성이 높음 2. 메시지형식message: [message, 채널명, 메시지 내용]pmessage: [pmessage, 패턴, 채널명, 메시지 내용] 특징메시지는 최대 한번만 전송됨일반적인 key-value 공간과는 무관함 (db 상관 없음)수신 실패 시 재전송 없음 (내구성이 필요한 경우 Redis Streams를 고려할 것) 3. 명령어더보기SUBSCRIBE ch1 ch2PSUBSCRIBE patternUNSUBSCRIBE chPUNSUBSCRIBE patternPUBLISH ch ..

Database/Redis 2025.06.04

[Spring Data Redis] 1. Redis

1. RedisTemplateSpring에서 Redis와 상호작용할 수 있게 해주는 중심 클래스.항목설명동작 방식자동으로 직렬화 및 연결 관리 처리 (고수준 API)구성RedisOperations 인터페이스 구현스레드 안전성설정 완료 후 스레드 안전함뷰(Views)opsForValue(), opsForList()→ 특정 자료구조 전용 API처럼 사용 가능 예제) ListOperations더보기@Autowiredprivate ListOperations listOps;public void addLink(String userId, URL url) { listOps.leftPush(userId, url.toExternalForm());}특정 자료형용 opsForXxx() 뷰를 DI로 주입 가능vs Stri..

Database/Redis 2025.05.14

[몽고DB 완벽 가이드] 8. 트랜잭션

크리스티나 초도로 , 섀넌 브래드쇼 , 오언 브라질 님의 "몽고DB 완벽 가이드" 책을 정리한 포스팅 입니다. 1. 트랜잭션데이터베이스의 논리적 처리 단위복제 셋 및 샤드 클러스터 환경에서만 트랜잭션을 지원함 2. 트랜잭션 사용법세션 기반 구조클라이언트-서버 간의 세션 관리를 기반으로 트랜잭션을 구현함분산 환경에서 클라이언트의 연속적인 작업을 추적하기 위함구분Logical SessionServer Session정의클라이언트 트랜잭션 흐름 추적 객체실제 트랜잭션 실행 담당역할트랜잭션 시퀀스, 시간, 인과관계 추적요청 추적 및 세션 상태 관리위치클라이언트 애플리케이션 내부MongoDB 서버 내부관계서버 세션과 연결되어 동작논리 세션이 생성 시, 서버 세션을 통해 작업 실행필요성트랜잭션, 인과적 일관성, 재시..

Database/MongoDB 2025.04.30

[몽고DB 완벽 가이드] 7. 집계 프레임워크

크리스티나 초도로 , 섀넌 브래드쇼 , 오언 브라질 님의 "몽고DB 완벽 가이드" 책을 정리한 포스팅 입니다.1. 파이프라인, 단계 및 조정 가능 항목집계 프레임워크항목설명정의파이프라인 기반 데이터 분석·가공 도구 모음입력하나의 컬렉션출력가공된 도큐먼트 스트림단계(Stage)파이프라인의 구성 단위- 각 단계는 도큐먼트 스트림을 입력으로 받고, 가공된 도큐먼트 스트림을 출력함옵션(knobs / tunables) 각 단계는 파라미터 설정 가능 (원하는 방식으로 데이터 처리 가능) 2. 단계 시작하기: 익숙한 작업들aggregate()연산자기능$match조건 필터링$skip, $limit페이징$project필드 선택 및 재구성$sort정렬 예제더보기db.movies.aggregate( {$match: {..

Database/MongoDB 2025.04.30