Database (9) 썸네일형 리스트형 인덱스와 조인 #3 목차 🔥 인덱스 설계는 데이터베이스 성능 최적화의 핵심! 🚀인덱스 종류📌 B-Tree 인덱스Unbalanced IndexB-Tree의 "B"는 Balanced를 의미함.Index Skew 현상대량 삭제 후 발생하는 현상인덱스 스캔 효율 저하 (다시 채워지기 전까지 성능 문제 발생)📌 비트맵 인덱스Distinct 개수가 적을 때 유용대용량 테이블에서 여러 개의 인덱스가 필요할 때 적합DW (Data Warehouse) 테이블에서 주로 사용단독 사용보다는 여러 개를 묶어서 활용📌 함수 기반 인덱스활용 사례암호화 솔루션📌 리버스 키 인덱스부하 분산에 유리Equal = 조회만 가능범위 검색(Between, Like 등)에는 사용 불가📌 클러스터 인덱스클러스터형 인덱스 / IOT (Index Or.. 인덱스 스캔 효율 목차인덱스 스캔 효율 정리(1) 인덱스 매칭도= , IN 조건이 아닌 조건 이후는 무조건 체크 조건드라이빙 조건을 만들어 줘야 한다.조회 조건이 = 이 아닌 컬럼은 가급적 인덱스 뒤쪽으로 배치결합 인덱스 우선순위 결정자주(항상) 사용되는가?= 조건Cardinality (분포도)소트 연산 대체 가능 여부인덱스 row 7 vs 결과 row 3 → 인덱스가 더 많을 경우 비효율 발생일부 컬럼에만 인덱스가 존재할 경우(2) 비교 연산자 종류와 컬럼 순서에 따른 인덱스 레코드의 군집성 (인덱스 매칭도)(3) 인덱스 선행 컬럼이 등치 (=) 조건이 아닐 때 발생하는 비효율 (인덱스 매칭도)Sequential 액세스 효율은 선택도에 의해 결정 → 얼마나 적은 레코드를 읽는가?인덱스 컬럼이 조건절에 모두 = 조건일 때.. 오라클 DBMS 구조 목차 DatabseDatafilesControl filesRedo Log files (Transaction log files)InstanceSGAShared AreaLibrary CacheDictionary CacheData Buffer CacheRedo Log BufferPMONUser process가 실패할 경우 프로세스 Recovery 수행SMONDBWRLGWR (log writer)CKPT (check point) 인덱스와 조인 #2 Index Range Scan Index Range Scan Descending hint : Index_desc B*Tree인덱스의 가장 일반적이고 정상적인 형태필요한 범위만 스캔인덱스를 구성하는 선두 컬럼을 조건절에 사용해야한다.성능은 인덱스 스캔범위, 테이블 엑세스 횟수를 얼마나 줄일수있느냐로 결정(인덱스탄다고끝이아님)인덱스 사용이 불가능 하거나 범위 스캔(Range Scan)이 불가능 한 경우 ?인덱스 컬럼의 가공 (좌변 가공)Null 검색Null 검색의 경우, not null인 행이 있어 ” null + 값” 인경우 인덱스 range scan 가능묵시적 형변환컬럼과 상수의 Data Type이 상이한 경우변환 불가능하면 에러 발생문자 = 숫자 (문자 > 숫자)날짜 = 숫자 (에러)문자 = 날짜 (.. 인덱스와 조인 #1 목차 덱스는 알아도 인덱스는 잘 몰르는디,,처음 운영 데이터를 만지면서 가장 중요한 것 중 하나는 바로 '인덱스' 였다.그냥 솔지에서 덱스 같은 역할이라고 보면된다.데이터를 읽는 Key가 되어 준달까 오호호홍. 여튼.. 종종 정산데이터를 업로드 한다거나,대량데이터를 업데이트 해줘야 하는 일들이 발생하곤 했는데,그럴 때마다 내가 짠 쿼리는 참 오래 걸렸다.차장님한테 여쭤보니, 인덱스는 만들었냐고 물으셨다.그렇구나 인덱스가 필요하구나 !인덱스KEY + VALUE인덱스의 탐색수직적 탐색 시작점 검색 Random Access ROOT : 최상위 노드 BRANCH : ROOT & LEAF 의 연결고리 LEAF : KEY + Rowid (블록주소) > leaf node는 정렬되어 있음Ro.. HOT update HOT update 란?HOT : Heap-only TuplePostgreSQL 8.3버전부터 등장한 HOT(Heap-Only Tuple)은 " 인덱스에는 존재하지 않고 테이블에만 존재하는 튜플" 이라고 공식문서에서 정의되어있다.하지만, 설명과는 조금 다르게 HOT 및 HOT update는 인덱스가 전혀 없는 테이블, 혹은 존재하더라도 인덱스에 포함되지 않는 Column을 update 하는 경우에만 동작하는 일종의 Update 최적화 기법이라 표현할 수 있다.제약HOT Update 기능은 위에서 언급한 내용을 포함하여 다음 두 조건을 만족할 때 동작한다.Update 수행 시 테이블의 인덱스가 참조하는 Column이 Update 대상이 아니어야 한다. (즉, 인덱스 페이지에 영향을 미치지 않아야 한다.)U.. Oracle vs PostgreSQL 오픈소스DB 얼마전 회사에서 운영하선 시스템이 오픈소스DB로 DB를 전환했다. 기존에 사용하던 Oracle에서 PostgreSql로 일부 DB가 변경되었다. 이에 따라 짜여져있던 쿼리들을 기존 Oracle 문법에서 PostgreSql 문법으로 전환해야 하는 부분이 많이 발생하여 문법적차이를 정리해둘 필요성을 느껴 정리를 한다. 개인적으로 DB에 로직이 많이 있는 경우엔, PostgreSql이 알맞은 DB인지에 대해 조금 의문이 들었다.포스트그레에선 한 트랜잭션이 실행된 후, 해당 트랜잭션이 종료되기 전까지는 락이 걸려 다른 쿼리가 실행되지 않는다. 이로 인해, 운영을 하는 데에는 다소 불편함이 존재하고있다. 물론 이렇게 느끼는 데에는, DB만 도입했을 뿐, DB의 특성을 고려하지 못하고 전환을 했다는 .. DB | ORACLE 무료 버전 설치 1 목차💡 오늘의 한줄 요약: 오라클 무료 버전 설치oracle 무료 버전 설치https://www.oracle.com/kr/database/technologies/xe-downloads.html Oracle Database Express Edition (XE) Downloads | Oracle 대한민국Support Oracle Database Express Edition (XE) is a community supported edition of the Oracle Database family. Please go to the Oracle Database XE Community Support Forum for help, feedback, and enhancement requests. Note: Oracle S.. 이전 1 2 다음