본문 바로가기

데이터베이스

(6)
InfluxDB 사용하는 이유 및 특징 Time Series Database(TSDB) 사용 이유 InfluxDB 특징 1.Scale out 시계열 데이터는 자율주행차, IOT 등 초 단위로 유입되는 데이터가 굉장히 많습니다. RDB 경우에는 특정 건수가 이상이면 속도가 확실히 늘어나는데, 그렇다고 timestamp를 index로 잡더라고 index rebuild 등 시간이 오래걸립니다. 또한 오라클 RAC 클러스터 구성 등 비용은 높다보니, RDB경우에는 샤딩 관리가 어려워서 비용이 많이드는 반면, TSDB는 NoSQL의 부류이기 때문에 scale out에 쉽습니다. 2. Data Retention Application Level에서 구현할 수 도 있지만 data를 Retention Policy 통해서 데이터 삭제 주기를 정해줄 수 있습니다..
오라클 구조 Instance & Database Oracle은 실제 data가 저장되는 물리적인 디스크 Database와 Database와 입출력할 수 있게 서버내부 메모리와 프로세스로 이루어진 Instance로 이루어져있습니다. SGA라는 공유 메모리 영역을 갖고 있고, 실제 Client가 DB 접속 시 Instance(thread 개념)을 할당하게 됩니다. Client에게 Instance할당 시에는 PGA(세션 정보, 변수 저장공간, 정렬 공간 등)을 할당 받게 됩니다. 오라클 RAC 경우에도 다음과 같은 구조를 갖으며 Datafile과 Control file은 공유하고 나머지는 Instance별로 갖고있습니다. Database Buffer Cache LRU 알고리즘을 사용하며 DataFile에 바로 작성하지 않..
[DB(오라클)] 용어정리 데이터 딕셔너리 뷰 데이터 딕셔너리란 DB의 메타데이터를 갖고 있는 테이블입니다. 사용자가 관리하는 것이 아니라 시스템에서 직접 관리하기 때문에 수정/삭제가 불가능하고, 암호 같은 기호만 보일 뿐 실질적인 내용을 알 수 없습니다. 그래서 데이터 딕셔너리에서 파생한 데이터 딕셔너리 뷰를 제공하는데, 크게 3가지 유형의 뷰를 제공합니다. DBA_XX, ALL_XX, USER_XX. Funtion-based Index(함수기반 인덱스) select * from ex_table where ((cost*discount)*cost)>100; 이러한 구문이 있을 때 cost, discount에 조건절에서 칼럼값을 그대로 사용하지 않기 때문에 인덱스를 활요할 수 없습니다. 그렇기 때문에 이러한 경우 성능을 높이기 위해..
[DB(오라클)] 디스크 용량 부족 시 확인할 점 1. undo tablespace 용량 부족 tablespace의 용량을 늘리던가 혹은 undo retention 시간을 확인하고 해당 시간 이후에 작업을 실행해야합니다. DB는 ACID를 지원하는데 이는 작업 완료 시 commit 하여 DB에 반영하고, 문제 있을 시에는 rollback하여 작업 취소를 하는 것입니다. REDO는 오라클에서 어떤 작업이든 redo log에 기록을 하는 것이고, undo는 undo segment에 저장된 값을 이용해서 원래의 값으로 복원하는 기능을 합니다. 따라서 redo는 복구 할 때 사용자가 했던 작업을 그대로 다시하지만, undo는 했던 작업을 반대로 해서 작업을 원상태로 돌립니다. 해당 작업을 하고 있을 시, 장애 발생하면 redo와 undo는 다음과 같은 동작을 ..
[DB(오라클)] 데이터 저장 구조 오라클 데이터 구조는 물리 구조와 논리 구조로 나눌 수 있다. 물리 구조는 Data File등 OS에서 보이는 구조이고, 논리구조는 Tablespace 등 오라클 내부의 구조라고 구분할 수 있다. Tablespace 테이블스페이스는 다음과 같이 크게 3가지 종류로 나눌 수 있습니다. Segement Data Segemnet, Index Segment, Temporary Segment, Undo Segemnt으로 나뉘는데 하나의 Tablespace 내부에 저장된 각 Object를 세그먼트라고 볼 수 있다. Extent, Data block은 하위 개념들이고 Block은 기본 8kb 사이즈다. DataFile Oracle이 실제 Data를 저장하는데 사용되는 파일로, file을 삭제하는 등 하면 DB가 정상..
[DB] Index Index란 자주 조회되고 분산도가 높은 데이터를 빠르게 조회하기 위해 구축한 것입니다. 디스크를 다 조회하는 것보다 메모리에 있는 Index를 활용합니다. 인덱스 구축 시 사용되는 칼럼과 ROWID(데이터 주소, 저장위치 오브젝트 번호+블로번호 등)로 구성되어있다. Index는 탐색을 빠르게 하기 위함이고, 별도 자료구조를 생성하는 것만큼 쓰기 성능은 떨어지면 이는 트리형 Index가 트리를 유지하기 위해서 Rebalance하기 때문이다. Hash, B-, B+ 등이 Index 구축 시 사용되지만 Hash가 탐색 시 O(1) 로 빠르지만, 특정 범위의 값을 조회할 때 찾을 수 없기 때문에 잘 사용되지 않는다. B-, B+트리는 balanced tree인데 보통은 B+트리를 많이 사용하게 된다. B+트리..