DB

· DB
인덱스의 기본 개념 인덱스는 책에 있는 색인과 같은 기능입니다. 어떤 책이 있다고 했을 때, 한라산이라는 단어가 나오는 페이지를 찾고 싶다면 색인을 이용해서 빠르게 찾을 수 있습니다. 인덱스도 데이터베이스에서 색인과 비슷한 역할을 수행합니다. 간략하게 인덱스를 사용함으로써 얻게 되는 장점과 단점을 작성해보겠습니다. 장점 탐색 속도가 빨라질 수 있다. 즉 시스템 전체의 성능 향상으로 이어질 수 있다. 단점 색인처럼 인덱스를 위한 별도의 공간이 필요하므로 추가 메모리를 사용한다. 인덱스를 작성할 시간이 필요하다. 데이터의 변경 작업이 자주 일어난다면 인덱스 수정으로 인해 성능이 나빠질 수 있다. 인덱스는 두 가지 종류가 있습니다. 클러스터링 인덱스 논-클러스터링 인덱스 (or 보조 인덱스) 클러스터링 인덱스..
· DB
DB의 특징 실시간 접근성 실시간으로 요청되는 비정형적인 질의에 대하여 응답할 수 있어야 합니다. 지속적인 변화 데이터베이스는 INSERT, UPDATE, DELETE를 통해 데이터의 상태를 동적으로 유지합니다. 동시 공용 데이터베이스는 서로 다른 목적을 가진 사용자들이 동시에 같은 데이터를 참조할 수 있어야 합니다. 내용에 의한 참조 데이터베이스의 데이터는 질의로 주어지는 데이터의 내용에 의해서 참조됩니다. DB의 언어 DDL (Data Definition Language) 데이터베이스의 구조를 정의, 수정, 삭제하는 언어 ALTER, CREATE, DROP DML (Data Manipulation Language) 데이터베이스의 데이터를 조회, 삽입, 갱신, 삭제하는 언어 SELECT, INSERT,..
· DB
이슈 내용 unique 제약을 통해 중복을 검사하면 안 될까? 결론 중복 검사 방법에는 두 가지 방법이 있습니다. 1. 직접 select 해서 체크하는 방법 이 방법은 원하는 대로 예외를 터트릴 수 있고 훨씬 명확한 코드를 제공할 수 있습니다. 하지만 동시성 이슈가 발생할 수 있습니다. 2. DB UNIQUE 제약에 의존하는 방법 사실 DB 관련 예외가 터지면 이걸 일일이 잡기가 애매합니다. 따라서 공통 예외로 처리하여 사용자에게 서버 쪽에 문제가 있다 정도로만 알릴 수 있습니다. 3. 뭐가 더 좋을까 1번 방법은 동시성 이슈가 발생한다는 단점이 있습니다. 하지만 실제 상황에서 동시성 이슈가 발생할 일은 극히 드뭅니다. 따라서 우선은 1번 방법을 사용해서 원하는 로직으로 깔끔하고 명확하게 구현하고 DB에..
· DB
재귀 테이블을 왜 사용하는지 생각해보았다. 1. 임시 테이블로써의 역할 2. 재귀의 특성을 활용해서 원하는 값으로 채워 넣은 테이블 생성 + ... 아직은 이 정도 밖에는 모르겠다. 우선 재귀 테이블을 사용하는 방법은 생각보다 간단했다. WITH RECURSIVE cte as ( SELECT 0 as HOUR// 0을 초깃값으로 지정하고 HOUR라는 별칭을 붙임 UNION ALL// 생성되는 모든 쿼리문을 합침 SELECT HOUR + 1 FROM cte// 재귀의 실행문과 같은 역할. HOUR의 값을 1씩 증가시킨다 WHERE HOUR < 24// 재귀의 실행 조건. HOUR가 24보다 작을 때 까지. 실행하면 HOUR의 값이 24에서 멈추게 된다. ) SELECT HOUR from cte; -- 결과..
@xftg77g
'DB' 카테고리의 글 목록