일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- java
- cache
- jpa
- lambda
- StringBuilder
- Spring
- SQL
- docker
- redis
- 인덱스
- MSA
- equals
- jwt
- 필드 주입
- DDL
- KEVISS
- 열 속성
- select_type
- static
- 생성자 주입
- Test
- 테스트 코드
- AOP
- 바이너리 카운팅
- 조합
- VUE
- stream
- hashcode
- 재정의
- DI
- Today
- Total
목록인덱스 (2)
백엔드 개발자 블로그
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/byeF1C/btsLgekoBbq/UUELUhHP9s0LhvKA5EWhK1/img.png)
인덱스란B-Tree 구조인덱스는 해당 자료구조를 사용함시간 복잡도 : O(logN) 인덱스 종류프라이머리 키 인덱스 :PK or Unique 칼럼을 인덱스로 한거탐색과정 B-Tree와 비슷 세컨더리 인덱스 프라이머리 키 외 인덱스인덱스 두번 스캔함 : 세컨더리 인덱스의 리프노드가 PK일 경우 레코드 하나가 변할 때마다 바꿔줄 필요가 없어짐인덱스의 주의사항CUD의 오버헤드 : 데이터 삽입시 리프노드를 분리하고, 올려줘야 되므로 오베헤드 발생가능성 있음디스크 사용량 : 2G 복합키 인덱스 9개 해주면 9G ㅎㄷㄷ인덱스의 여러가지 스캔 방식 인덱스 레인지 스캔 필요한 범위만 읽는 효율적인 스캔 방식랜덤 I/O : 인덱스가 아닌 정보까지 조회하면 발생함테이블의 랜덤 I/O가 25% 넘어가면 full table..
인덱스 변경, 삭제, 추가로 튜닝해보자인덱스 없이 작은 규모의 데이터를 조회하는 나쁜 SQL 문1. 튜닝 전1건 데이터출력 약 0.25초 소요 SELECT * FROM 사원WHERE 이름 = 'Georgi'AND 성 = 'Wielonsky'; 2. 튜닝 전 실행 계획 분석type : ALLEXPLAINSELECT *FROM 사원WHERE = 'Georgi'AND 성 = 'Wielonsky'; WHERE 조건절에 사용한 열의 DISTINCT데이터 개수 확인성_개수가 더 컸음SELECT COUNT(DISTINCT(이름)) 이름_개수,COUNT(DISTINCT(성)) 성_개수,COUNT(1) 전체FROM 사원; 3. 튜닝더 큰 개수를 가진 성_개수가 선두인 index 추가ALTER TABLE 사원 ADD IN..