오라클은 SELECT를 전달할 때 '힌트(hint)라는 것을 사용할 수 있다. 힌트 : 지금 내가 전달한 select문을 이렇게 실행해 주면 좋겠다 라는 힌트이다. 힌트는 select 문을 어떻게 처리하는지에 대한 힌트일 뿐이므로 힌트 구분에서 에러가 나도 SQL실행에 전혀 지장을 주지 않는다. 힌트는 개발자가 데이터베이스에 어떤 방식으로 실행해줘야 하는지를 명시하기 때문에 조금 강제성이 부여되는 방식이다. select * from tb_board order by bno desc; select *+INDEX_DESC (tb_board pk_board) */ * from tb_board; 위의 두 SQL은 동일한 결과를 생성한다. 힌트를 통해 인덱스 자체가 정렬을 해 둔 상태이므로 이를 통해서 SORT과정..
인덱스의 특징을 살펴보면, 1. 인덱스는 질의 결과를 빠르게 찾는데 목적이 있다. 2. 데이터베이스에 레코드가 삽입, 삭제될 때마다 인덱스가 변경되어야 한다. 3. 그런데 데이터베이스에서 인덱스는 별도의 자료구조(B-Tree)형태로 관리하게 된다. 인덱스 자료구조도 디스크에 저장하여, 질의가 있을 경우에 읽어와서 사용하게 된다. 여기서 3번이 인덱스가 많아지면 문제가 될 수 있는 부분에 해당한다. 한 테이블에 인덱스를 많이 걸면 성능이 안좋아진다는 얘기를 많이 들어봤을 것이다. 어떠한 이유로 성능이 안좋아지는 것일까 ? DB를 직접 만든다고 생각해보자. DB는 거대한 list에서 특정 item 을 찾기 위한 시스템이다. List users; list의 크기가 작을 때는 그냥 for-loop를 돌면서 일일..
인덱스 사용자체를 기반으로 하는 조인 방식이다. 조인 수행 절차 하나의 테이블을 기준으로 각 row를 추출할 때마다 순차적으로 상대 테이블의 연관된 모든 row들을 조인에 의해 추출한다. 수행절차로부터 알 수 있는 튜닝 포인트에는 2가지가 있다. 1) 테이블사이에 조인이 발생하니 조인의 수를 최소화 하는것이 중요하다. 그걸 위한 차원에서 조인순서(driving)가 중요하다. 2) 연결되는 테이블은 반드시 연결고리 칼럼에 대한 인덱스가 사용되어야 한다. 조인조건에 대한 인덱스가 구성되어 있어야 하고, 그것이 사용되어야 하는 것이 중요하다. 특징 1. 인덱스에 의한 랜덤 액세스에 기반을 두며 인덱스 사용을 하는 이상 대용량 데이터를 처리하게 될때는 I/O로 인해서 문제가 발생될 가능성이 있다는 것이 특징이다..
- Total
- Today
- Yesterday
- MySQL
- 스프링 프로젝트
- 스프링
- JavaScript
- 객체지향
- di
- 자바의정석
- 스프링의정석
- spring
- Node.js
- security
- Spark
- 한입크기로 잘라먹는 리액트
- 데이터베이스
- @Configuration
- 이정환
- 친절한SQL튜닝
- AWS
- 리액트
- 시큐리티
- EC2
- 코드로 배우는 스프링 웹 프로젝트
- 인덱스
- React
- 컨테이너
- 남궁성
- node
- 데브캠프
- 자바스크립트
- 스프링 빈
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |