본문 바로가기

mysql2

쿼리 실행계획 (Query Plan)이란? 이슈 최근 회사에서 애플리케이션 기능개선 작업을 진행하던 중, 신규 테이블을 1개 생성해야하는 상황이 생기게 되었다. 그리고 기존 SQL들에서 해당 테이블을 사용하게끔 대거 수정하였다. 헌데 해당 테이블을 생성할 때 컬럼으로 INDEX를 덜 지정해둔 것 같아, 이로 인해 쿼리 성능이 낮아졌는지 체크하는 게 좋을 것 같아 쿼리 실행계획을 파악해보기로 하였다 INDEX는 추가적인 쓰기 작업과 저장 공간을 활용하여 DB 테이블 검색 속도를 향상시키기 위한 자료구조이니, 그냥 모든 컬럼 싹 다 INDEX 걸면 안되냐?! 라고 하면 필자도 사실 혹하긴하나, 아래와 같은 이슈가 있으니 배제하고 필요한 것만 INDEX를 걸기 위해 현재 쿼리 실행계획을 파악하고자 한다. * INDEX를 다 걸면 곤란한 이유 인덱스를 .. 2023. 12. 6.
MySQL / MyISAM / InnoDB 1. MySQL의 구조는 어떻게 되어있는가? 아래와 같이 2가지로 구성되어 있다. 1. MySQL 엔진 2. 스토리지 엔진 1.1 MySQL 엔진 > 파서, 전처리기, 옵티마이저, 쿼리실행기 등으로 구성되어 있다. > 사용자의 요청을 받아 쿼리를 검사하고, 스토리지 엔진에게 데이터 읽기 또는 변경에 대한 실행 요청을 한다. 1.2 스토리지 엔진 > 데이터 파일로부터 데이터를 읽거나, 데이터를 쓰고 변경하는 작업을 진행한다. > InnoDB, MyISAM, Maria 등으로 나뉜다. > 최신버전 MySQL은 기본 스토리지 엔진으로 InnoDB를 채택하고 있다. 2. InnoDB VS MyISAM InnoDB > InnoDB 엔진은 트랜잭션 처리가 필요하고 대용량의 데이터를 다루는 부분에서 효율적이다. > .. 2022. 12. 31.