반응형

DB 24

Mysql Event Scheduler

Scheduler는통계와 같은 Batch 작업, 순위 데이터처럼 DB에 과부하가 많이 걸리는 작업 또는 정기 데이터 백업과 같은 정기적으로 수행되어야하는 작업에 주로 사용한다. Event Scheduler 사용 여부 확인 SHOW VARIABLES LIKE 'event%'; Value가 OFF라면, SET GLOBAL event_scheduler=ON;으로 변경할 수 있다. 저장된 Event Scheduler가 있는지 확인 SHOW EVENTS; SELECT * FROM information_schema.EVENTS; Event Scheduler 작성예시 DROP EVENT IF EXISTS delete_event; CREATE EVENT delete_event ON SCHEDULE AT CURRENT_..

DB/MySQL 2023.12.28

JSON 타입에서 값 추출해서 JOIN하기

-- attraction 필드 값 예시 [{"order": 1, "orderDate": 1, "attractionId": 1886054}, {"order": 2, "orderDate": 1, "attractionId": 1920563}, {"order": 1, "orderDate": 2, "attractionId": 136249}, {"order": 2, "orderDate": 2, "attractionId": 136310}] attraction_plan 테이블에 있는 attraction 필드는 JSON 타입이고, JSON 객체를 담고 있는 배열이다. attractionId와 관광지 테이블의 attraction_info 테이블의 content_id 필드의 값을 이용해서 조인을 했다. select attr..

DB/MySQL 2023.11.21

연관 관계에 있는 데이터 삭제

alter table user_plan add constraint foreign key (plan_idx) references plan(plan_idx) on delete cascade; alter table attraction_plan add constraint foreign key (plan_idx) references plan(plan_idx) on delete cascade; 부모 테이블의 데이터가 삭제되면 연관된 자식 테이블의 데이터도 같이 삭제되도록 할려고 delete cascade를 줬다. 하지만, 안 된다. ### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Cannot delete or..

DB/MySQL 2023.11.19

MySQL 데이터 타입

Date, Time Data Types DATE 👉 'YYYY-MM-DD' TIME 👉 '00:00:00' DATETIME 👉 'YYYY-MM-DD hh:mm:ss' TIMESTAMP 👉 '1970-01-01 00:00:01' UTC에서 '2038-01-19 03:14:07' UTC까지의 범위 저장될 때는 현재 time zone ➡️ UTC로 변환되어 저장 조회할 때는 UTC ➡️현재 time zone으로 변환해서 읽음 YEAR 👉 0000 DATETIME 또는 TIMESTAMP는 microseconds도 포함할 수 있다. 이 경우 DATETIME은 '1000-01-01 00:00:00.000000' 에서 '9999-12-31 23:59:59.499999'까지의 범위이고 TIMESTAMP는 '1970-0..

DB/MySQL 2023.05.21

Redis

Redis 데이터의 원래 소스보다 더 빠르게 액세스할 수 있는 임시 데이터 저장소 주로 변하지 않는 데이터, 반복적으로 액세스하는 같은 데이터를 캐시에 저장 단순한 key-value 구조 In-memory 데이터 저장소 서버 재시작 시 모든 데이터 유실 복제 기능을 사용해도 실수 발생 시 데이터 복원 불가💀 Redis를 캐시 이외의 용도로 사용한다면 적절한 데이터 백업이 필요 데이터를 영구 저장하는 방법 RDB 바이너리 파일 형태로 저장된다. 저장 당시 메모리에 있는 데이터 그대로를 사진 찍듯이 snapshot 방식으로 저장 자동 👉 redis.conf 파일에서 SAVE 옵션(시간 기준) 수동 👉 BGSAVE 커맨드를 이용해 cli 창에서 수동으로 RDB 파일 저장 SAVE 커맨드는 절대 사용 ❌ AOF..

DB/Redis 2023.05.07

재고시스템으로 알아보는 동시성이슈 해결방법

작업환경 세팅 1. docker 설치 brew install docker brew link docker docker version 2. MySQL 설치 및 실행 docker pull mysql docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 --name mysql mysql docker ps 만약 docker: no matching manifest for linux/arm64/v8 in the manifest list entries. 에러가 발생한다면, docker pull --platform linux/x86_64 mysql 이 에러는 Mac, Windows를 사용하는 사람끼리 협업할 때 발생하는 문제다. 3. MySQL 데이터베이스 생성 docker ..

DB 2023.04.30

CQL(Cassandra Query Language)

Cassandra는 자동으로 스키마를 생성해주는 기능이 없다. 테이블을 먼저 생성해야 한다. 데이터 타입 text int 32-bit integers bigint 64-bit integers float double boolean true / false timestamp uuid blob binary data varint arbitrarily large integers list, set, map, tuple과 같은 커스텀 데이터 타입도 등록할 수 있다. Primary Keys Simple Primary Keys entity 클래스에서 하나의 partition key 필드로 구성 Composite Keys 하나 이상의 primary key 필드로 구성 Apache Cassandra Spring Data에서 ..

DB/Cassandra 2023.02.08

Mongosh 사용

mongoDB shell 접속 mongosh Document use 데이터베이스명 데이터베이스 사용 없으면 만들어준다. db 현재 사용중인 데이터베이스 확인 show dbs 서버 내의 데이터베이스 리스트 최소 한 개의 Document를 가진 DB만 출력! db.컬렉션명.insertOne({key:value, ...}) 컬렉션 안에 Document 추가 db.데이터베이스이름.find() DB내의 도큐먼트 조회 Collection db.createCollection(컬렉션명[, options]) Collection 생성 options 참고하기👇 https://www.mongodb.com/docs/manual/reference/method/db.createCollection/ db.createCollectio..

DB/MongoDB 2023.01.29

[Neo4j] Expected a result with a single record, but this result contains at least one more. Ensure your query returns only one record.

Expected a result with a single record, but this result contains at least one more. Ensure your query returns only one record. 상황) A가 B를 follow하는 메소드 내에서 findByUserid를 하면서 발생했다. 원인) 쿼리가 1개 이상의 값을 반환하기 때문이다. 해결) Neo4j Desktop에 들어가서 확인해보니 userid가 중복으로 있어서 제거했다. 참고 👇 https://stackoverflow.com/questions/73070405/spring-data-neo4j-expected-a-result-with-a-single-record-but-this-result-contai Spring D..

DB/Neo4j 2023.01.29
반응형