본문 바로가기
반응형

분류 전체보기122

MySQL 인덱스 동작 확인하기 이전 글에서 조회 성능 최적화를 위한 인덱스를 작성하면서 인덱스를 적용시키는 여러 방법에 대해서 지식이 부족한 것 같아 추가로 인덱스 동작을 확인하는 글을 정리하게 되었다 MySQL8.0 버전 MySQL WorkBench의 Visual Explain을 사용하면서 정리해보려고 한다 인덱스는 B-tree구조로 되어있으며 리프 노드는 인덱스로 지정한 컬럼의 오름차순으로 정렬되어 있어 where절에 `=`, `>, 데이터 분포에 따라 성능이 크게 달라질 것으로 보임 따라서 where col1 = 1 and col2 > 1에 사용하게 되면 col1이 정해지면 col2이 정렬된 상태이니 빠르게 범위 탐색이 가능하다 ex:) 사용자가 2023년 이후 작성한 글을 불러오자 -> memberId=1 and created.. 2023. 7. 23.
intellij mac 명령 단축키 유용한 단축키들이 많은데 매 번 찾아보기 힘들어서 정리해 놓고 계속 추가할 예정 cmd(⌘) + R : 현재 파일에서 해당 문자열을 변경하는 단축키입니다. 주로 클래스 파일에서 전역변수를 바꿀 때 유용 Fn + Shift(⇧) + F6 : 현재 파일에서 해당 문자열을 변경하는 단축키 -> 지역변수를 바꿀 때 유용 cmd(⌘) + Shift(⇧) + [ : 오른쪽 탭 이동 cmd(⌘) + Shift(⇧) + ] : 왼쪽 탭 이동 cmd(⌘) + N : 제너레이터(생성자, 오버라이딩, Getter, Setter) cmd(⌘) + alt(⌥) + L : 자동으로 코드를 정렬 해주기 때문에 코드의 가독성이 향상되는 효과가 있습니다. 정말 자주 사용하는 단축키입니다. F2: 에러가 발생한 곳으로 포커스를 이동하는.. 2023. 7. 15.
조회 성능 최적화를 위한 인덱스 (2) 글을 작성하는 도중 인덱스에 대한 개념부터 알아두어야 이해가 더 쉬울 것 같아 글을 분리하였습니다 1편은 여기를 참고해 주세요! 대부분의 개발자들은 대용량 서비스에서 어떻게 데이터베이스의 부하를 줄이고 성능을 올릴 수 있는지에 대해 고민하고 여러 방법을 테스트해 볼 것이다. 나도 자주 고민해 봤지만 부하 테스트 환경 세팅, 서비스 구조, DB 구조에 따라 적용해 볼 수 있는 방법이 모두 다르며 제 각각의 상황에 맞는 고민을 하기 때문에 쉽게 접근해보지 못하였다. 이에 따라 사이드 프로젝트로 이커머스 도메인에서의 대용량 시스템일 때 어떤 기술들을 적용해서 성능을 최적화시킬 수 있을지 여러 방면으로 테스트하고 변화를 확인해 보는 프로젝트를 진행해 볼까 생각하고 있다. 이에 대한 사전 공부로 회원이 작성한 게.. 2023. 7. 6.
조회 성능 최적화를 위한 인덱스 (1) 인덱스를 이용한 조회 성능 최적화 테스트를 작성하다가 인덱스에 대한 개념 또한 만만치 않은 것 같아 먼저 정리한 후 이어서 작성하려고 (1)과 (2)로 분리하게 되었습니다. 인덱스 인덱스란 추가적인 쓰기 작업(정렬)과 저장 공간(인덱스 테이블)을 활용하여 데이터베이스 테이블 검색 속도를 향상하기 위한 자료구조이다 예시를 들어 보자. A B C E F G H 위의 알파벳이 정렬되어 있는 표에서 D가 빠진 것을 찾는 것은 쉽다 데이터가 많더라도 정렬되어 있으면 사람이 찾기에 편할 것이다(범위 탐색이 용이) A C B F G H E 정렬되지 않은 테이블에서 D가 빠진 것을 찾으려면 전체 테이블을 확인해봐야 하며 데이터가 많다면 사람이 찾기에도 정말 힘들 것이다 위의 예시를 보면 무조건 비용을 지불하여 인덱스를.. 2023. 7. 5.
반응형