인덱스에서 조회를 할 때 내가 원하는 방식으로의 정렬을 하려면 어떻게 해야 할까?
1. 인덱스 생성
내가 원하는 정렬 방식의 인덱스를 생성해서 그 방식으로 조회하기!
인덱스 생성 방법
CREATE [UNIQUE] INDEX [스키마명.] 인덱스명 ON [스키마명.] 테이블명 (칼럼 1 [, 칼럼 2, 칼럼 3,...])
ex)create index idx_basic on t_todo (delFlag , tno desc);
--delFlag , tno 값을 기준으로한 인덱스
2. 힌트
내가 원하는 방식으로 유도할 수 있는 방식인 힌트
(❗주의 오라클에서만 사용 가능)(힌트의 방식은 여러 가지가 있다)
select/*+INDEX(t_todo idx_basic) */ * from t_todo where tno > 0; --힌트
<이렇게 만들면 pk를 안 타고 인덱스를 타면서 조회한다 >
오라클 버전에 따라 동작이 다르다 (데이터가 너무 적으면 힌트를 줘도 풀스 캔 해버린다) 말 그대로 힌트!!!
데이터의 팽창
⭐데이터의 수직 수평 팽창
⭐튜닝할 때 수직적 팽창에서 많이 사용되는 게 인덱스
⭐DB의 튜닝의 끝판왕은 데이터 자체를 줄이는 것
테이블 설계
설계할 때 가장 중요한 것은 내가 어떤 시스템을 만들 건지 정확하게 알아야 한다는 것
설계 요령
도메인을 신경 써서 만들어보자
1차→ 장부 (엑셀) 단독. 나 홀로 존재 , 순수한 명사
2차 →1차 도메인을 이용해서 일어나는 행위
테이블 설계 예시 <맛집>
모델링
누가 어떤 음식점에 언제 가서 평점을 몇 점을 주었는가? 를 알아보는 기능의 DB 설계
테이블에 들어가는 정보는 1차 도메인을 기준으로 잡으면 된다
내가 잡은 테이블이 맞는 건지 알아보는 방법은 이 테이블로 내가 원하는 기능을 만들 수 있는가? 를 생각해보자
데이터베이스에 기록하지 않는 정보는?
매번 달라지는 정보는 기록하지 않는다
예) 회원의 나이 <매년 변하기 때문에>
PK를 잡는 기준
단독으로 CRUD 가 가능한 곳
PK가 있는 게 유용하다는 생각이 들 때
참조키(FK)
- 성능에는 전혀 영향을 주지 안는다 , 오직 데이터를 깔끔하게 유지하는 데에만 영향을 준다
- 기본키를 참조하는 칼럼들의 집합
- 외래 키를 가지는 칼럼의 데이터 형은 외래 키가 참조하는 기본키의 칼럼과 데이터형이 일치해야 한다
'개발자 성장 일지' 카테고리의 다른 글
로그인...쿠키..세션 (0) | 2022.04.09 |
---|---|
ERD (0) | 2022.04.09 |
2022.04.04 DB 와 WEB 연결 (0) | 2022.04.05 |
2022.04.01 DB야 안녕? (0) | 2022.04.02 |
2022.03.31 죽어라 DB야 (0) | 2022.03.31 |