mysql2 [MySQL] Query 성능 높이는 팁 Query 튜닝 Index 전략을 사용하기 인덱스는 데이터베이스 성능 최적화에 필수적인 요소다. PK나 JOIN, WHERE 자주 사용되는 컬럼 같은 컬럼에 반드시 인덱스를 생성하자. 하지만 과도한 인덱스는 부정적인 영향(쓰기 성능 느려짐, 메모리 낭비)을 주기 때문에 전략적으로 필수적인 인덱스를 만들어 사용해 관리하자. Predicate 절에서 함수 사용을 피하라 SELECT * FROM TABLE1 WHERE UPPER(COL1)='ABC' UPPER() 같은 함수를 사용하게 되면 데이터베이스는 인덱스를 사용하지 못하게 된다. 함수 기반 인덱스를 생성하거나, 컬럼 커스텀을 이용해야 한다. Predicate 절에서 와일드카드(%)로 시작하는 조건을 피하라 SELECT * FROM TABLE1 WHERE.. 2023. 9. 8. [데이터베이스] DBMS와 옵티마이저 MySQL 기준 사용할 땐 하더라도 내부 엔진을 알고 사용하자클라이언트-서버 아키텍처 클라이언트 층 서버에 명령, GUI Connection Handling : 클라이언트가 서버에 접속하면 연결을 클라이언트는 위한 스레드를 얻음 Authentication : Mysql에 연결할 때 서버쪽에서 수행, username과 password로 인증 Security : 서버와 연결된 후 특정 사용자에게 쿼리 권한이 있는지 확인 서버 층 (a.k.a “Brain of MySQL Architecture”) RDB의 논리적인 기능을 책임짐 Thread Handling : 연결된 클라이언트가 스레드를 할당받을 때 그 스레드를 제공, 스레드로 실행되는 클라이언트 쿼리들을 핸들링 Parser : SQL을 분석해 문법 검사, .. 2023. 8. 20. 이전 1 다음