database

· database
앞선 글에서 테이블 조인시 데이터 중복 제거를 했다하지만 성능이 별로 좋지 못한듯 하다 (해당 소요시간은 네트워크 환경,시스템 지연시간 등을 포함한 시간인것 같다)이번 기회에 쿼리 성능을 높혀보자 기존 쿼리ORM const query = this.placeRepository .createQueryBuilder('place') .leftJoin('place.rating', 'rating') .leftJoin('place.carts', 'cart') .select([ 'place.id', 'place.address AS address', 'place.image AS image', 'place.title AS title..
· database
데브코스 최종 프로젝트중 프론트분이 여행지들 조회에서총 리뷰수(reviewCount)와, 총 찜한수(saveCount) 가  여행지 상세 조회랑 맞지 않는다는 연락이 왔다 여행지들 조회시id가 25번인 창경궁이 총 리뷰수는 12개, 총 찜한 횟수도 12개 라고 나온다 실제 DB에 저장된 데이터를 확인해보자 리뷰 테이블리뷰 갯수는 총 6개찜 테이블찜한 횟수는 총 2개DB에 저장되어 있는 데이터와 맞지않다... 왜 리뷰수 와 찜 테이블이 곱셈이 되서 나오는 걸까 쿼리문을 확인해 보자 const query = this.placeRepository .createQueryBuilder('place') .leftJoin('place.rating', 'rating') .leftJoin(..
· database
Node 교재로 공부하던 중 ORM사용시에 모델을 정의하게 되는데 실무에서는 모델들이 100개가 넘어가는 경우가 흔하다고 한다    위의 사진에서는 각각의 모델들을 수동적으로 초기화 시키고, 연관 관계를 짖는 코드이다만약 실무에서 모델들이 100개가 넘어가면 모두 수동으로 초기화 시키기는 너무 비효율적이다그래서 책에서 제공된 동적으로 모델들을 초기화 시키는 코드를 나의 상황에 맞게 변형시켜 보았다나의 개발 환경은 typescript를 사용하므로 CommonJS가 아닌 ESM 환경이다 폴더명, 파일명 추출const __dirname = fileURLToPath(new URL('.', import.meta.url));const __filename = fileURLToPath(import...
· database
데브코스에서 도서 관련 프로젝트를 진행하게 되었는데 구현 선택사항에 시퀄라이즈가 있었다 Node 교재에서도 시퀄라이즈 관련 내용이 나왔었는데 이번 기회에 시퀄라이즈를 사용해 보았다 시퀄라이즈? 시퀄라이즈는 ORM(Object Relational Mapping)의 종류 중 하나이다. ORM은 RDBMS의 테이블과 객체를 Mapping을 해주어 개발자는 해당 객체를 이용하여 db와 상호작용이 가능하게 만들어주는 기술이다 NoSQL은 ODM(Object Document Mapping)를 사용한다. ex) 몽구스 테이블과 객체 맵핑 class Book extends Sequelize.Model { static initiate(sequelize) { Book.init( { id: { type: Sequelize...
· database
다마고치 백엔드 프로젝트 진행중 회원가입시 user 테이블에 회원 정보를 저장과 동시에다른 여러가지 쿼리 작업을 해야하는 상황이 생겼다 상황 try { const message = await userService.joinUser(uid, hashPwd, nickN..
· database
데이터베이스에 데이터가 저장되면 각 데이터마다 용량을 차지하기 때문에 방대한양의 데이터를 효율적으로 저장해야 한다 그래서 다양한 데이터 타입(자료형)을 정리해 보았다 데이터 타입에는 숫자, 문자열, 날짜, 기타 4가지 종류가 있다 숫자 데이터 타입 데이터 타입 바이트 수 숫자 범위 설명 BIT(N) N/8 byte 1~64bit 비트 단위로 저장 b'0101' 과 같이 표현 TINYINT 1byte -128 ~ 127 정수 SMALLINT 2byte -32,768 ~ 32,767 정수 MEDIUMINT 3byte -8,388,608 ~ 8,388,607 정수 INT(INTEGER) 4byte 약 -21억 ~ +21억 정수 BIGINT 8byte 약 -900경 ~ +900경 정수 FLOAT 4byte -3..
· database
SQL(Structured Query Language, 구조화된 질의 언어) 데이터베이스에서 데이터를 저장, 조회, 수정, 삭제와 db자체의 성능 유지관리, 최적화에 사용되는 언어 즉 db를 다루는 언어이다 DDL(Data Definition Language, 데이터 정의어) 데이터베이스 구조 정의에 사용하는 언어 뼈대를 구성하는 역할이다 DDL 종류 CREATE : 새로운 테이블 생성 ALTER : 기존 테이블 구조 변경 DROP : 기존 테이블 삭제 TRUNCATE : 기존 테이블 초기화 RENAME : 테이블 이름 변경 DML(Data Manipulation Language, 데이터 조작어) 데이터베이스에 저장된 데이터를 다루는 역할이다 DML 종류 SELECT : 저장된 데이터 조회(DQL로 분류..
nyh98
'database' 카테고리의 글 목록