본문 바로가기

MySQL/8.0 New Feature

(5)
MySQL 8.0 binlog_row_value_options (JSON Type option) 1. binlog_row_value_options 해당 parameter 는 MySQL 8.0.3 에 적용된 신규 옵션이다. JSON document 를 update 시 효과적인 binary log 공간을 확보하기위해 도입된 개념이다. default 값은 " " (공백) 값이며, Valid Values 는 "PARTIAL_JSON" 이다. Scope : Global / Session Dynamic : Yes Default : ' ' Valid Values : PARTIAL_JSON 1) MySQL 8.0.3 JSON 데이터 형태는 JSON 필드를 update 시에, 변경되는 key 와 value 가 아닌, JSON 필드의 모든 key : value 형태가 binary log 에 작성되었다. 무조건 모든 ..
MySQL 8.0 Atomic DDL (data definition statement) 1. 개요 8.0 에서 새롭게 "Atomic Data Definition Statement Support" 에 대한 내용이 소개 되었다. 2. Atomic DDL 1) 지원되는 DDL 문 Atomic DDL 기능은 DDL 이 지원되는 테이블과 지원되지 않는 테이블 모두 지원한다. table DDL Statement : CREATE / ALTER / DROP ( for databases, tablespaces, tables, indexes, truncate table ) non-table DDL Statement : stored programs, triggers, views, user-defined functions user management Statement : CREATE / ALTER / DROP ..
MySQL 8.0 binlog_row_metadata 1. 개요 MySQL 8.0 에서 추가된 "binlog_row_metadata" 변수가 있다. 해당 값은 "MINIMAL" 과 "FULL" 값을 설정할 수 있다. binlog 작성 시 row 의 meta 정보를 함께 기록하는 것인데, "FULL" 로 설정을 하게되면 MINIMAL 과 생각보다 큰 binlog 사이즈를 가지게 된다. 구성하는 요소가 무엇인지, 어떤 형식으로 binary log 에 남게되는지 보고자 한다. 해당 파라메터는 Global dynamic variable 이다. 2. binlog_row_metadata 란 ? 목적 1) 마스터와 슬레이브가 테이블 구조가 다를 경우, 슬레이브는 전송된 데이터로부터 metadata 를 사용 2) 외부 소프트웨어가 메타 데이터를 사용하여 row event..
MySQL 8.0 Optimizer Trace MySQL 8.0 에서만 특정 쿼리가 2초만에 끝나는 use index 힌트를 무시하고 자꾸 600초 가량이 걸리는 Full Table Scan 을 선택해서 부하 테스트가 잘 안됐다. 기존 원본 버전인 MariaDB 10.0 버전에서는 원하는대로 use index 만으로도 원하는 인덱스를 잘 사용했는데, 타겟 버전인 MySQL 8.0 에서만 이슈가 있던 부분이다. ( force index 는 잘 됨 ) 그래서 MySQL 8.0 에서는 optimizer 부분이 어떻게 바뀌었는지 Optimizer Trace 를 살펴보면서 정리했다. Cost-based Query Optimization 1. 기본 컨셉 Assign Cost to Operations Assign Cost to partial or alternat..
Descending Index 1. Background mysql 8.0 부터는 Desecending Index 가 지원이 된다. 기존 index 생성 시에 DESC 로 생성하여도 문법 상 오류가 발생하진 않지만, 실제로는 ASC 로 생성이 되었음. 8.0 부터는 DESC index 가 지원이 된다는 것. 내가 궁금한 것은 desc index 가 지원되면서 Backward Scan 의 성능 또한 향상되었는지 여부가 궁금했음.또한 혹시나 하는 마음에.. ASC + DESC Index 를 가진 경우의 케이스도 궁금했음. 2. ASC + DESC INDEX 1) 아래와 같이 ASC + DESC 로 결합된 인덱스를 생성한다.CREATE TABLE t4 ( tid INT NOT NULL AUTO_INCREMENT, TABLE_NAME VARC..