Derived table과 CTE 최적화: materialization과 merge의 차이
MySQL이 derived table과 CTE를 merge하거나 materialize하는 조건, 실행 비용, 진단 방법을 운영 관점에서 정리한다.
전체 문서 79개 · 3 / 4 페이지
MySQL이 derived table과 CTE를 merge하거나 materialize하는 조건, 실행 비용, 진단 방법을 운영 관점에서 정리한다.
MySQL의 nested loop, block nested loop, hash join이 선택되는 조건과 실행 경로를 운영 관점에서 정리한다.
MySQL GROUP BY의 Loose Index Scan 조건과 temporary table, filesort 발생 원인을 실행 계획과 운영 관점에서 정리한다.
MySQL WHERE 조건에서 인덱스 탐색이 가능한 sargable predicate와 그렇지 않은 조건의 차이를 실행계획과 운영 관점에서 정리한다.
MySQL Multi-Range Read와 Batched Key Access가 보조 인덱스 조회와 조인에서 랜덤 I/O를 줄이는 원리를 운영 관점에서 정리한다.
MySQL Index Condition Pushdown이 보조 인덱스 탐색과 테이블 row 접근 비용을 줄이는 원리와 적용 조건을 정리한다.
MySQL optimizer_trace로 실행 계획 후보, 비용 비교, 선택 이유를 확인하고 운영 진단에 적용하는 방법을 정리한다.
MySQL EXPLAIN ANALYZE에서 optimizer 추정 rows와 실제 rows 차이를 읽고 인덱스·통계·쿼리 개선으로 연결하는 방법을 정리한다.
MySQL EXPLAIN FORMAT=JSON의 nested_loop, cost_info, attached_condition을 실행 계획 해석과 운영 진단 관점에서 정리한다.
MySQL EXPLAIN의 핵심 컬럼을 실행 경로, 인덱스 선택, row 추정, Extra 메시지 중심으로 운영 관점에서 해석한다.
MySQL Cost Model이 row 추정, 인덱스 비용 비교, 조인 순서 선택에 어떤 영향을 주는지 운영 관점에서 정리한다.
MySQL Histogram이 비인덱스 컬럼의 데이터 분포를 어떻게 모델링하고, 비균등 분포 환경에서 실행 계획 추정을 어떻게 개선하는지 운영 관점에서 정리한다.
MySQL 옵티마이저가 cardinality와 index statistics를 어떻게 사용하며 persistent statistics가 왜 실행 계획 안정성에 중요한지 운영 관점에서 정리한다.
MySQL이 SQL을 parser, resolver, optimizer, executor 단계로 처리하는 흐름과 실행 계획 해석의 핵심 포인트를 운영 관점에서 정리한다.
MySQL 연결 구간에서 TLS를 어떻게 강제하고, 인증서를 어떻게 검증하며, 운영 중 어떤 쿼리로 암호화 상태를 점검해야 하는지 정리한다.
ProxySQL가 MySQL 앞단에서 hostgroup, query rule, connection multiplexing으로 어떤 운영 문제를 풀고, read/write split과 failover 보조를 어디까지 맡길 수 있는지 정리한다.
Aurora MySQL에서 max_connections를 메모리·동시성·장애 전파 관점으로 산정하고, 애플리케이션 pool만으로 충분한 경우와 proxy 또는 RDS Proxy가 필요한 경우를 운영 기준으로 정리한다.
MySQL connection pool 크기, 대기열, timeout, backpressure를 어떻게 설계해야 데이터베이스 과부하와 애플리케이션 장애 전파를 막을 수 있는지 운영 관점에서 정리한다.
MySQL client/server protocol에서 handshake, packet framing, text result set, prepared statement binary protocol이 어떻게 동작하는지 운영 관점에서 정리한다.
MySQL prepared statement와 드라이버 statement cache가 연결 풀과 결합될 때 어떤 메모리·세션·장애 특성이 생기는지 운영 관점에서 정리한다.