목록CS (45)
bdfgdfg
가장 중요한 개념이 있다. 인덱스는 여러개의 칼럼에 설정할 수 있다. 단일 인덱스를 여러개 생성할 수 있고, 여러 칼럼을 묶은 복합 인덱스를 설정할 수도 있다. 다만 인덱스는 디비의 메모리를 사용하여 테이블 형태로 저장하므로 개수와 저장되는 공간은 비례하기에 where절에 자주 사용되며 고유한 값 위주로 인덱스를 설정하는게 옳다. select * INTO TestTable2 FROM [Order Details] -- NorthWind db의 테이블 -- 복합 인덱스 추가 CREATE INDEX INDEX_TESTINDEX ON TestTable2(OrderID,ProductID); -- 두 칼럼을 대상으로 인덱스를 걸음. 결론만 말하면 두 칼럼을 대상으로 인덱스가 걸려있을 때 where절을 통해 각 칼럼..
트랜잭션 트랜잭션은 간단히 말하면 여러가지 액션(여기서는 SQL)을 원자성으로 처리한다는 의미이다. 게임을 예로들면 특히 거래소같은 시스템을 예로들 수 있다. 1. A계정이 거래소에 물건을 가격과 함께 등록. 거래소 테이블에는 해당 물건이 등록되었음. 2. B계정이 해당 물건을 구매. 거래소 테이블에 일치하는 행의 정보를 가져옴. (없다면 Fail) 3. B계정이 해당 물품을 올바르게 구매할 수 있다는 조건이 확인되면 해당 아이템을 구매. B 계정의 인벤토리와 관련된 테이블에 해당 물품 추가. 4. A계정에는 물품을 등록한 판매금을 지급. A계정의 인벤토리와 관련된 테이블에 재화를 추가하거나 업데이트. 5. 거래소 테이블에는 해당 물품의 행(Row)을 삭제 간단하게 설명하려고 해도 여러가지 액션이 일어난..
Index 인덱스란 테이블의 데이터를 조회할 때 더 빠르게 검색하기 위한 것. -> 다만 그 만큼 용량을 더 잡아먹는다. 인덱스가 걸리지 않는 테이블을 조회하는건 사실상 O(N). 선형탐색과 다를게없다. O(N)이 느린건 아니지만, 많은 데이터를 저장하는 데이터베이스에서는 해당 검색시간은 많이 느린편에 속함. 인덱스는 이름그대로 색인. 책에서 목차를 먼저 찾고, 그 후 데이터를 조회하는 방식. 인덱스를 걸 대상은 고유한 값(고유한 값? -> 기본키)이여야한다. 인덱스는 책의 목차라고 했다. 예로들어 사진이라는 목차를 찾아갔는데 연관된 페이지가 100장 혹은 1000장을 넘어버리면 그게 무슨 의미가있을까. 즉 우리는 목차만 보고 그 목차와 연관된 실제 내가 찾고싶은 데이터를 빠르게 찾기 위해서 인덱스를 거..
Join 데이터베이스는 굉장히 많은 테이블이 존재할 수 있다. 이때까지는 하나의 테이블을 대상으로 Select(조회)를 했지만, 실제로는 여러 테이블을 대상으로 데이터를 조회해야할 경우도 당연히 존재한다. 그럴 때 Join절을 사용하게 된다. -> 여러 테이블을 하나로 합쳐서 본다고 생각하면 된다. -> Join은 Key를 기준으로 테이블을 합치게 된다. -->간단 복습. 기본키(Primary Key)는 하나만이 존재하며(여러 칼럼을 하나의 기본키로 설정이 가능), 보통 고유한 값(주민 등록번호 등)을 대상으로 기본키를 설정한다. 외래키(Foregin Key)는 다른 테이블이 아까 설정한 기본키를 참조하는 Key. https://ingorae.tistory.com/446 여기 그림이 설명이 잘되어있음. ..