본문 바로가기

반응형

개인공부/MySQL 고도화

(3)
MYSQL WHERE 조건 이해 묵시적 형변환 함정 서비스 쿼리를 작성하다 보면 이상은 없는데 성능이 이상하게 좋지 않을 때가 있다. 명시적 쿼리로 보기힘들다 (애플리케이션에서 변수를 바인딩하여 SQL 실행 등 여러 요인) 묵시적 형변환이 발생하여 테이블을 처음부터 끝까지 전부 체크해야 하는 테이블 풀스캔에 따른 현상을 방지하기 위한 팁에 대한 설명. 묵시적 형변환이란? 묵시적 형변환이란 조건절의 데이터 타입이 다를 때 우선순위가 높은 타입으로 형이 내부적으로 변환되는 것을 말한다. 정수 타입이 문자열 타입보다 우선순위가 높다. 만약 문자열과 정수값을 비교하는 쿼리가 들어오면 두개의 칼럼을 비교하고 우선순위가 높은 정수 타입으로 형변환 한다. 형 변환은 언제든지 발생할수 있지만... 만약 묵시적 형변환이 일어나는 대상이 인덱스라면?? ..
MySQL 쿼리 성능 진단 SQL 작성 해서 DB에 명령을 내리면 DB는 내부적으로 SQL 파싱(SQL 문법체크 미 DB를 실행 할 수 있는 형태로 변경) 그리고 옵티마이징을 거친후 데이터를 찾는다. 실제로는 SQL로 모든 조작이 일어나는게 아니라 DB 내부적으로도 빠르게 찾기위해 여러 방법을 사용한다. 쿼리 실행 계획 DB가 데이터를 찾아가는 일련의 과정을 사람이 알아보기 쉽게 DB 결과셋으로 보여주는 것이다. (기존의 쿼리를 튜닝할 수 있을 뿐만 아니라 성능 분석, 인덱스 전략 수립 등과 같이 성능 최적화에 대한 전박적인 업무를 처리) EXPLAIN [EXTENDED] SELECT .. FROM .. WHERE .. 이는 실제 DB에서 처리되는 최종 SQL 형태를 보여주기 위한 명령어 인데. warning이 하나 떠있다. 이때..
MySQL의 특징 서버 엔진 - Table Join, Group By, Order By와 같은 일반적인 SQL 처리부터 Function/Procedure, Trigger, Constraint 기능 - 사용자가 쿼리를 날렸을 때, DB가 SQL을 이해할 수 있도록 쿼리를 재구성함 스토리지 엔진 - 물리적인 저장장치에 데이터를 읽어오는 역할을 한다. - 플러그인 방식으로 동작한다. (여러개의 스토리지 엔진을 설치하여 사용할 수 있다) - 지금도 새로운 플러그인이 개발되고 있다. (그래서 다른 어떤 DBMS보다 강력하다고 할 수 있다.) MyISAM 스토리지 엔진 - MySQL에서 가장 오래된 스토리지 엔진 - 파일 기반 스토리지 엔진 (데이터에 대한 키, 즉 인덱스만 메모리에 올려서 처리한다.) - 트랜잭션을 지원하지 않고 ..

반응형