Database 14

[Redis] Redis란?

Redis란?Redis는 “In-Memory 기반의 Key-Value 데이터 저장소”로, 원격 서버에서 프로세스로 동작한다.관계형 DB가 아닌 NoSQL 계열에 속하며, 빠른 읽기/쓰기 성능을 제공하는 캐시·세션 저장·메시지 큐 등 다양한 용도에 사용된다. 특징Key-Value 기반 저장소RDBMS처럼 복잡한 테이블 구조가 아니라 단순한 키(key)-값(value) 구조.쿼리 연산이 아닌 간단하고 빠른 명령으로 데이터 접근.In-Memory 저장소데이터를 디스크가 아닌 메모리(DRAM)에 저장 → 응답 속도가 매우 빠름.디스크 I/O 병목이 없어서 고성능 시스템에 적합.NoSQL“Not Only SQL”유연한 데이터 표현 가능.고성능 작업을 위한 단순화된 데이터 구조 제공. 장점1. 매우 빠른 속도메모리..

Database/NoSQL 2025.12.12

[MySQL] Transaction

TRANSACTION 주요 트랜잭션 명령어명령어설명BEGIN TRANSACTION / START TRANSACTION트랜잭션 시작COMMIT트랜잭션 확정 → 변경 사항을 DB에 반영ROLLBACK트랜잭션 취소 → 변경 사항 모두 되돌림SAVEPOINT 이름트랜잭션 중간 저장 지점 설정ROLLBACK TO SAVEPOINT 이름지정한 SAVEPOINT까지 롤백SET TRANSACTION트랜잭션 격리 수준 지정 (READ COMMITTED, SERIALIZABLE 등) 예시START TRANSACTION; -- 트랜잭션 시작UPDATE accounts SET balance = balance - 100 WHERE user_id = 1;UPDATE accounts SET balance = balance + 1..

[MySQL] Rename, JOIN

RENAME테이블 이름 변경RENAME TABLE table1 TO table2; 자세한 설명은 하단에 첨부한 글을 참고.JOINhttps://opentutorials.org/course/3161/19545 DATABASE가 다음과 같다고 가정 LEFT JOINSELECT D.product_id, -- 상품 ID D.product_name, -- 상품 이름 D.product_type, -- 상품 타입 P.user_id -- 해당 유저가 상품을 보유/권한 있는지FROM PRODUCT DLEFT JOIN PRODUCT_USER P ON P.product_id = D.product_id AND P.user_id = '13'; 실행 결과 product_id..

Database/SQL 2025.09.04

[MyBatis] 1:N 객체 매핑 : <resultMap> <collection>, flatMap이란

1:N 관계를 객체 구조로 매핑할 때 사용된다. Service에서 비즈니스 로직을 처리할 때 Map 안에 List의 구조를 이중으로 넣을 수도 있지만, 의 개념을 사용하면 mybatis xml 에서 쿼리상으로 한 번에 출력할 수 있다. 즉 이런 식으로 출력한다는 것.{ "user_id": 1, "user_name": "홍길동", "order_list": [ { "order_id": 101, "product": "노트북" }, { "order_id": 102, "product": "키보드" } ]} 이게 mybatis에서 쓰일 때의 모습이다. SELECT U.user_idx, U.user_name FROM USERS U SELECT O.order_id, ..

[MySQL] SELECT

https://opentutorials.org/course/3161/19540 SELECT COL1, COL2.. FROM TABLENAME; FROM 이 없는 경우SELECT 1; → 결과는 1SELECT 'HELLO'; → 결과는 HELLOSELECT NOW(); → 현재 시간SELECT 2+3; → 5즉, FROM 절이 없으면 DB는 테이블 조회가 아니라 표현식 계산을 하고, 그 결과를 출력 LIMIT 3; 맨 뒤에 이렇게 붙이면 나오는 데이터 들 중 3개만 출력. ORDER BY 시 유의사항PK, CREATED 모두 데이터가 생성되면서 계속 값이 증가하므로 둘 중 아무거나 해도 해당 데이터를 특정짓기 쉽다.그러나 PK의 경우 인덱스 테이블이 생성된다.따라서 PK로 조건을 주어 데이터를 검색했..

Database/SQL 2025.08.26

[MySQL] 테이블 구조, 생성

https://opentutorials.org/course/3161/19536 Structured Query Language row 2, column 4. https://opentutorials.org/course/3161/19537 File은 가로로 읽고, DB는 세로로 읽음. CHAR vs VARCHARCHAR는 무조건 해당 메모리만큼 할당한다. 따라서 주어진 값이 그보다 작다면, 뒤에 그만큼 공백을 붙여준다. VARCHAR는 가변적. 근데 그 뒤에 update시 데이터가 늘어나면 바로 해당칸에 붙는게 아니고, 맨 뒤 블록에 붙는다. 그게 체이닝 현상. 예전엔 그게 속도 저하의 문제가 있었으나 요즘엔 서버의 발달로 속도 저하이슈는 많이 발생하지 않는다.

Database/SQL 2025.08.22

[MySQL] 구조. 데이터베이스와 스키마.

https://opentutorials.org/course/3161/19533 DATABASE 데이터베이스? SCHEMA 스키마? 데이터베이스 DATABASE데이터가 체계적으로 저장 및 관리되는 물리적 단위. 실제 데이터를 저장하는 데이터 파일, 로그 파일, 인덱스, 테이블 등이 포함. 보통 데이터베이스끼리는 서로 독립적이며, 다른 데이터베이스에 직접 접근하려면 링크, 연결설정 등이 필요. 스키마 SCHEMA데이터베이스안에서 데이터 구조를 정의하는 논리적 단위. 데이터베이스 객체(테이블, 뷰, 인덱스, 저장 프로시저, 함수 등)을 그룹으로 묶어 관리하는 네임스페이스같은 역할. 여러 애플리케이션이나 사용자가 같은 데이터베이스를 사용할 때, 스키마를 통해 객체들을 논리적을오 분리 및 관리 가능. h..

Database/SQL 2025.08.22