본문 바로가기

쿼리 튜닝2

[mysql] 인덱스 정리 및 팁 MySQL 인덱스에 관해 정리를 하였습니다. MySQL을 잘 알아서 정리를 한것이 아니라, 잘 알고 싶어서 정리한 것이라 오류가 있을수도 있습니다. 1. 인덱스란? 인덱스 == 정렬 인덱스는 결국 지정한 컬럼들을 기준으로 메모리 영역에 일종의 목차를 생성하는 것입니다. insert, update, delete (Command)의 성능을 희생하고 대신 select (Query)의 성능을 향상시킵니다. 여기서 주의하실 것은 update, delete 행위가 느린것이지, update, delete를 하기 위해 해당 데이터를 조회하는것은 인덱스가 있으면 빠르게 조회가 됩니다. 인덱스가 없는 컬럼을 조건으로 update, delete를 하게 되면 굉장히 느려 많은 양의 데이터를 삭제 해야하는 상황에선 인덱스로 지.. 2017. 11. 5.
패스트캠퍼스 SQL튜닝캠프 2일차 - 인덱스 향상 5. 테이블 Random Access 부하인덱스를 쓰는 이유는 RowId를 찾기 위함RowId는 HDD에 있음RowId를 해시 함수로 돌려Clustering Factor테이블 블럭들이 인덱스 정렬 순으로 얼마나 잘 정렬되어있는지에 대한 지표6. 테이블 Random 액세스 최소화 튜닝인덱스가 많을 때의 단점Command(명령 : 등록/수정/삭제)시 인덱스 변경이 필요하여 시간이 많이 소모인덱스 저장 장소가 필요하여 저장소 용량이 많이 필요하게 됨옵티마이저가 인덱스를 보고 실행계획을 작성하는데, 이때 인덱스가 많으면 많을수록 옵티마이저는 잘못된 실행계획을 생성할 확률이 높다.인덱스는 3개 이하를 권장한다.인덱스 컬럼 추가로 해결하기문제상황)인덱스 : deptno + job select * from emp w.. 2017. 7. 30.