일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- JWT
- JSON Web Token
- 포트번호
- JWT 쓰는 방법
- 네비게이션 한번에
- 게시글 이미지
- 알림생성모듈
- 3계층구조
- 부트캠프
- N+1
- 토큰
- element.style
- secret코드
- 이미지가 포함된 게시글
- 메뉴바 한번에
- N+1문제
- 쿼리스트링
- 게시글 이미지 업로드
- .env
- 메뉴바
- 패스파라미터
- unnest
- JWT 쓰는이유
- Winston
- 스테이지어스
- getComputedStyle
- 알림생성
- 환경변수
- route 53
- 레포지토리
- Today
- Total
목록DBMS (14)
기주
Partitioning (파티셔닝)테이블을 성능/관리 효율성 목적으로 분리하여 저장.컬럼/row단위로 분리할 수 있다 1. Vertical Partitioning (버티컬 파티셔닝)컬럼 단위로 테이블을 나눠 관리하는 기법.특정 컬럼(content)에 데이터 크기가 너무 클 때 사용. 예를들어게시글 목록을 조회할 때 SELECT절에 content를 넣지 않는다고 하더라도 DB에서는 일단 모든 데이터들을 메모리에 올린 다음에 불필요한 속성들을 잘라낸다. 게시글 목록인데 불필요하며 크기가 큰 속성인 content를 메모리에 올리는 것은 DB I/O측면에서 부담이 가고 성능에도 안좋다. 이때 기존 article_tb에서 article_content_tb로 content 속성을 별도 테이블로 분리해놓는다면 먼저 ..
본질식별자vs인조식별자본질 식별자: 비즈니스 로직에 의해 만들어진 데이터로 구성된 식별자(주민번호, 이메일, 전화번호등 고유성이 보장되는 데이터이용)인조 식별자: 비즈니스 로직과 무관하게 인위적으로 만든 식별자(AUTO_INCREMENT, UUID 등) 무엇을 사용해야할까?-> 가능한 본질식별자를 사용하기위해 노력해야 한다. 왜 가능한 본질식별자를 사용해야하는가?(인조 식별자의 단점)1. 불필요한 컬럼 생성2. PK로 데이터 중복 방지가 불가능하다-> 만약 똑같은 insert문이 2번 실행된다면, 본질 식별자에서는 에러가 나서 중복방지가 되지만, 인조식별자는 정상실행되어 중복데이터가 발생한다.3. 인덱스를 별도 생성해야한다.-> PK는 기본으로 클러스터링 인덱스가 적용되는데 인조식별자는 의미없는 데이터로..
UNION / UNION ALL 알아보기 UNION-여러 쿼리문들을 합쳐서 하나의 쿼리문으로 만들어준다.-중복된 값을 제거하고 보여준다-중복된 값을 제거하는 연산이 추가로 수행되기 때문에 UNION ALL보다 속도가 느리다. UNION ALL-여러 쿼리문들을 합쳐서 하나의 쿼리문으로 만들어준다.-중복된 값을 모두 보여준다. 사용방식-컬럼명이 동일해야한다(같지않다면 AS로 정확히 맞춰줘야 한다.)-컬럼타임과 개수가 동일해야한다. JOIN과 차이점JOIN: 새로운 열로 결합한다(수평결합)UNION: 새로운 행으로 결합한다(수직결합)참고:https://silverji.tistory.com/49
인덱스를 쓰는이유1. 조건에 맞는 데이터를 O(N)에서 O(logN)의 시간복잡도로 빠르게 검색할 수 있다.2. 데이터 정렬(order by)하거나 그룹화(group by)를 더 빨리 하기위해 b-tree 기반 인덱스 동작방식이진탐색을 통해 적은 데이터 탐색범위로 빠르게 찾는다. table(a,b,c) a 속성에만 인덱스 있는경우)where a = 9;-> 인덱스 스캔으로 빨리 조회 where a=9 AND b = 45;-> a조건에 대해서는 빠른 인덱스 스캔, b조건에 대해서는 원본 데이터 테이블로 이동하여 b값비교, b값에 대해서는 full scan (a,b) 복합 인덱스 생성한 경우where a = 9;-> 인덱스 스캔으로 빨리 조회 where a=9 AND b = 45;-> a조건과 ..
Nested loop join, Merge join, Hash join 알아보기 Nested loop join첫번째 데이터 테이블을 순환하면서, 첫번째 데이터 테이블 데이터 1개당, 두번째 데이터 테이블 전체를 순환하는것.반복문으로 한테이블을 여러번 풀테이블 스캔을 하는 것.1. 인덱스가 필수적이다.2. 작은 데이터 셋 혹은 한쪽 테이블 행수가 작을 때 적합하다.3. 작은 데이터 집합에 빠르게 처리할 수 있기 때문에 실시간성인 OLTP시스템에 적합하다.OLAP시스템에서는 데이터양이 매우 크기 때문 에 적합하지않다.작업량T1 * T2특징1. 작은 데이터 세트나 매우 큰 테이블의 작은 부분만 결합할 때 가장 적합하다.(T1 * T2가 작은 경우에 유리하다. 즉 조인하고자하는 작은 테이블은 더 작게 큰 테이..
SQL - 집계함수, group by, order by 알기 ORDER BY-특정 속성(attribute)를 기준으로 정렬해서 가져오고 싶을때 사용-Default 정렬방식은 오름차순-오름차순 ASC로 표기-내림차순 DESC로 표기 집계함수(aggregate function)-여러 튜플(데이터, 행)들의 정보를 요약해서 하나의 값으로 추출하는 함수-대표적으로COUNT,SUM,MAX,MIN,AVG 함수가 있다-(주로) 관심있는 속성에 사용된다.(AVG(salary), MAX(birth_date), COUNT(sales))-*NULL값들은 제외하고 요약값을 추출한다 Q) 임직원 수를 알고싶다.SELECT COUNT(*)FROM employeeCOUNT()의 *은 튜플을 의미한다 왜 count(salary)등을..