[TIL] 인덱스, 뷰

TIL / / 2021. 9. 9. 01:05

Index  : 인덱스란 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조

 

단점 : 추가공간이 필요, 별도로 생성되므로 생성하는데 시간이 많이 걸림, 데이터 변경이 많거나 소량의 데이터는 오히려 성능을 저하시킴

 

인덱스 생성 : 자동으로 생성 : primary key, unique 제약사항이 걸린 컬럼

$ create index [인덱스 명] on [테이블 명]([컬럼 명]);
$ create index ind_email on user(email);

 

 

View  : 뷰는 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블

--문법--
CREATE VIEW 뷰이름[(속성이름[,속성이름])]AS SELECT문;

사용이유 : 복잡한 질의 내용을 단순한 질의를 통해 처리 가능,  DB의 데이터를 선택적으로 보여줄 수 있다--> 자료에 대한 권한별 접근 통제 가능

 

-트랜잭션 : 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위

DB 입장에서 TX의 시작 : DML 을 시작하면 자동으로 시작

TX의 종료 : 사용자가 명시적으로 commit, rollback 할경우, DDL이 실행되는 경우, sql툴을 정상적으로 종료하는 경우

 

TX중간에 데이터는 그냥 임시적인 상태라 테이블에 반영 되지 않음. ( 메모리상에서만 존재 ) --> 복구가 가능!

또한, 변경된 행들에 대해서는 lock이 걸려 다른사용자는 변경할 수 없는 상태다.

 


밑에 줄에 "단 수도 정보가 없다면 출력하지 않는다" 와 같은 내용이 들어가면 Inner Join 이라는 말이다.

다르게 밑에 줄 처럼 테이블 간 같은 값이 없어도 출력하는 경우는 Outer Join을 이용해야 할 것이다.

 

서브쿼리 쿼리는  main+ subquery 구조 이기때문에  우선, subquery를 작성한 후에 합치는 작업으로 쿼리를 작성하는게 이해하기 쉽겠다.

 

일반컬럼과 집계함수 컬럼이 같이사용 되면 안된다 ---> 일반컬럼에 group by를 걸어주자 

'TIL' 카테고리의 다른 글

[TIL] DP  (0) 2021.09.15
[TIL] DB 이상현상  (0) 2021.09.09
[TIL] JOIN, SubQuery  (0) 2021.09.08
[TIL] RDBMS  (0) 2021.09.06
[TIL] 코딩테스트에 많이 쓰이는 함수들(JAVA)  (0) 2021.09.02
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기