https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html#mysql-nutshell-additions
📌 Data dictionary
📌 Atomic DDL
📌 Upgrade procedure
--upgrade 서버 옵션은 서버가 자동 데이터 사전 및 서버 업그레이드 작업을 수행하는 방법을 제어📌 Security and account management
SYSTEM_USER 권한에 따라 구분partial_revokes 시스템 변수가 활성화된 경우 전역적으로 적용되는 권한을 부여 가능AS user [WITH ROLE]절 추가📌 Resource management
📌 Table encryption management
📌 InnoDB enhancements
innodb_deadlock_detect를 사용하여 교착 상태 감지를 비활성화 가능SELECT ... FOR SHARE 및 SELECT ... FOR UPDATE 잠금 읽기 구문과 함께 NOWAIT 및 SKIP LOCKED 옵션을 지원ADD PARTITION, DROP PARTITION, COALESCE PARTITION, REORGANIZE PARTITION 및 REBUILD PARTITION ALTER TABLE 옵션은 native partitioning in-place APIs에서 지원되며 ALGORITHM = {COPY | INPLACE} 및 LOCK 절과 함께 사용 가능CREATE UNDO TABLESPACE 구문을 사용하여 런타임시 선택한 위치에 추가 언두 테이블 스페이스 생성 및 삭제 가능innodb_max_dirty_pages_pct_lwm, innodb_max_dirty_pages_pct 변수의 기본값 변경innodb_autoinc_lock_mode 변수의 기본값 2로 변경ALTER TABLESPACE ... RENAME TO 구문 으로 지원innodb_dedicated_server 변수를 사용하여 서버 메모리 용량에 따라 innodb_buffer_pool_size, innodb_log_file_size, innodb_flush_method 값을 자동으로 구성 가능INFORMATION_SCHEMA.INNODB_TABLESPACES_BRIEF는 InnoDB테이블 스페이스에 대한 공간, 이름, 경로, 플래그 및 공간 유형 데이터 제공innodb_directories 옵션을 사용하여 서버가 중지된 상태 일 때 테이블 스페이스 파일을 새 위치로 이동하거나 복원 가능LOB(Large Object) 데이터에 대한 소규모 업데이트에 대해 언두 로깅이 지원되어 크기가 100 바이트 이하인 LOB 업데이트의 성능이 향상ALGORITHM=INSTANT은 ALTER TABLE 작업에 대해 추가 지원BLOB (Binary Large Object) 컬럼 타입 지원data-at-rest encryption 기능은 일반 테이블 스페이스를 지원innodb_buffer_pool_in_core_file 변수 비활성화 시 InnoDB 버퍼 풀 페이지를 제외하여 코어 파일의 크기를 감소CREATE TABLESPACE 구문의 ADD DATAFILE 절은 선택 사항으로 FILE 권한이 없는 사용자가 테이블 스페이스 생성 가능temptable_use_mmap 변수에 의해 temptable_max_ram 제한을 초과 할 때 TempTable 스토리지 엔진이 메모리 매핑 된 파일 또는 InnoDB 내부 임시 테이블을 사용할지 여부를 제어 => MySQL 8.0.26 에서 제거data-at-rest encryption 기능은 mysql 시스템 테이블 스페이스의 암호화를 지원innodb_spin_wait_pause_multiplier 변수로 spin-lock polling 지연 시간 제어 향상innodb_idle_flush_pct 변수를 사용하여 유휴 기간 동안 페이지 플러싱에 제한을 두어 SSD의 수명을 연장 가능lock_sys->mutex 는 lock_sys->latches.* 로 대체DATA DIRECTORY 절을 사용하여 데이터 디렉터리 외부에서 생성 된 테이블 및 테이블 파티션 데이터 파일은 InnoDB에 알려진 디렉터리로 제한ALTER INSTANCE {ENABLE|DISABLE} INNODB REDO_LOG 구문을 사용하여 리두 로깅을 활성화 및 비활성화 가능innodb_validate_tablespace_paths 변수로 테이블 스페이스 경로의 유효성 검사 비활성화 가능CREATE TABLE ... SELECT 구문은 row-based Replication이 사용 중일 때 바이너리 로그에 하나의 트랜잭션으로 기록innodb_extend_and_initialize 변수를 사용하여 InnoDB가 Linux에서 테이블 당 파일 및 일반 테이블 스페이스에 공간을 할당하는 방법 구성 가능temptable_max_mmap 변수는 TempTable 스토리지 엔진이 디스크에 내부 임시 테이블 데이터를 저장하기 전에 메모리 매핑 (MMAP) 파일에서 할당할 수 있는 최대 메모리 양을 정의AUTOEXTEND_SIZE 옵션은 InnoDB가 테이블 스페이스가 가득 차면 테이블 스페이스 크기를 확장하는 양을 정의하여 더 큰 증분으로 테이블 스페이스 크기를 확장 가능📌 Character set support
📌 JSON enhancements
JSON_EXTRACT()의 결과에 대해 JSON_UNQUOTE()를 호출하는 것과 동일한 ->> 연산자를 추가JSON_ARRAYAGG(), JSON_OBJECTAGG() 추가JSON_PRETTY() 추가ORDER BY를 사용하여 쿼리에서 JSON 값을 정렬 할 때 각 값은 고정 된 1K 크기의 일부가 아닌 정렬 키의 가변 길이 부분으로 표시JSON_STORAGE_SIZE(), JSON_STORAGE_FREE() 추가$[1 ~ 5]와 같은 범위에 대한 지원JSON_MERGE_PATCH() 추가JSON_TABLE() 추가📌 Data type suppor
📌 Optimizer
📌 Common table expressions
📌 Window functions
📌 Lateral derived tables
LATERAL 키워드가 추가되어 동일한 FROM 절에서 이전 테이블의 열을 참조 (종속)하도록 지정 가능📌 Aliases in single-table DELETE statements
📌 Regular expression support
📌 Internal temporary tables
📌 Logging
📌 Backup lock
📌 Replication
📌 Connection management
📌 Configuration
📌 Plugin
C or C++에서 C++로 변경InnoDB memcached plugin📌 C API
📌 Additional target types for casts
CAST() 및 CONVERT() 함수는 DOUBLE, FLOAT 및 REAL 유형으로의 변환 지원📌 JSON schema validation
JSON_SCHEMA_VALID() 및 JSON_SCHEMA_VALIDATION_REPORT() 추가📌 Multi-valued indexes
📌 Hintable time_zone
time_zone 세션 변수는 SET_VAR을 사용하여 힌트 사용 가능📌 Redo Log Archiving
📌 The Clone Plugin
📌 Hash Join Optimization
📌 EXPLAIN ANALYZE Statement
EXPLAIN ANALYZE는 쿼리 처리에 사용되는 각 반복자에 대해 TREE 형식의 SELECT 문 실행에 대한 확장 정보를 제공하고 예상 비용을 쿼리의 실제 비용과 비교 가능📌 Query cast injection
📌 Time zone support for TIMESTAMP and DATETIME
📌 Precise information for JSON schema CHECK constraint failures
JSON_SCHEMA_VALID()를 사용하여 CHECK 제약 조건을 지정할 때 제약 조건의 실패 이유에 대한 정확한 정보 제공📌 Row and column aliases with ON DUPLICATE KEY UPDATE
📌 SQL standard explicit table clause and table value constructor
📌 Optimizer hints for FORCE INDEX, IGNORE INDEX
📌 JSON_VALUE() function
JSON_VALUE() 추가📌 User comments and user attributes
📌 New optimizer_switch flags
optimizer_switch 시스템 변수에 대한 prefer_ordering_index 및 subquery_to_derived 두 개의 새로운 플래그 추가📌 XML enhancements
📌 Casting to the YEAR type now supported
📌 Retrieval of TIMESTAMP values as UTC
value AT TIME ZONE specifier AS DATETIME)을 사용하여 검색시 시스템 시간대의 TIMESTAMP 컬럼 값을 UTC DATETIME으로 변환 가능📌 Dump file output synchronization
SELECT INTO DUMPFILE 및 SELECT INTO OUTFILE 구문으로 파일에 쓸 때 주기적인 동기화 지원📌 Single preparation of statements
📌 RIGHT JOIN as LEFT JOIN handling
📌 Derived condition pushdown optimization
📌 Non-locking reads on MySQL grant tables
https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html#mysql-nutshell-deprecations
📌 Character set
utf8mb3📌 Authentication plugin
sha256_password📌 validate_password
validate_password (컴포넌트로 변경)📌 Clause
ALTER TABLESPACE, DROP TABLESPACE 구문의 EngineCREATE TEMPORARY TABLE 구문의 TABLESPACE = innodb_file_per_table, TABLESPACE = innodb_temporary📌 SQL mode
PAD_CHAR_TO_FULL_LENGTH📌 AUTO_INCREMENT
📌 UNSIGNED attribute
📌 Nonstandard MySQL extension
FLOAT(M,D), DOUBLE(M,D) 구문BINARY 속성&&, ||, ! 연산자📌 ZEROFILL attribute
📌 Function
JSON_MERGE(), FOUND_ROWS()JSON_TABLE()의 ON ERROR 순서📌 Statement
SELECT 구문의 INTO 절 위치UNION 구문의 INTO 절 위치INSERT ... ON DUPLICATE KEY UPDATE📌 Command
FLUSH HOSTS📌 Client
mysql_upgrade📌 Server Option
--no-dd-upgrade📌 Client Option
--compress📌 Replication Option
--master-info-file📌 File
mysql_upgrade_info📌 System variable
relay_log_info_file, max_length_for_sort_data, temptable_use_mmap📌 Environment variable
MYSQL_PWD📌 Column index prefixes
https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html#mysql-nutshell-removals
📌 System variable
innodb_locks_unsafe_for_binlog, information_schema_stats, log_builtin_as_identified_by_password, old_passwords, ignore_db_dirs, tx_isolation, tx_read_only, sync_frm, secure_auth, multi_range_count, log_warnings, metadata_locks_cache_size, metadata_locks_hash_instances, date_format, datetime_format, time_format, max_tmp_tables, have_crypt, ignore_builtin_innodb📌 Status variable
Com_alter_db_upgrade📌 User variables
SET 이외의 명령문에 대한 지원📌 Code
📌 Account management
GRANT 명령어로 사용자 생성, 수정📌 Function
PASSWORD()JSON_APPEND()📌 Query cache
📌 DDL log
📌 SQL mode
DB2, MAXDB, MSSQL, MYSQL323, MYSQL40, ORACLE, POSTGRESQL, NO_FIELD_OPTIONS, NO_KEY_OPTIONS, NO_TABLE_OPTIONS📌 Clause
GROUP BY 절에 대한 ASC, DESC 규정자ALTER DATABASE 구문에 대한 UPGRADE DATA DIRECTORY NAME 절📌 EXPLAIN
EXTENDED, PARTITIONS📌 Encryption
ENCODE(), DECODE(), ENCRYPT(), DES_ENCRYPT(), DES_DECRYPT()📌 Spatial function namespace
Contains(), Disjoint(), Equals(), Intersects(), Overlaps(), Within()Area(), AsBinary(), AsText(), AsWKB(), AsWKT(), Buffer(), Centroid(), ConvexHull(), Crosses(), Dimension(), Distance(), EndPoint(), Envelope(), ExteriorRing(), GeomCollFromText(), GeomCollFromWKB(), GeomFromText(), GeomFromWKB(), GeometryCollectionFromText(), GeometryCollectionFromWKB(), GeometryFromText(), GeometryFromWKB(), GeometryN(), GeometryType(), InteriorRingN(), IsClosed(), IsEmpty(), IsSimple(), LineFromText(), LineFromWKB(), LineStringFromText(), LineStringFromWKB(), MLineFromText(), MLineFromWKB(), MPointFromText(), MPointFromWKB(), MPolyFromText(), MPolyFromWKB(), MultiLineStringFromText(), MultiLineStringFromWKB(), MultiPointFromText(), MultiPointFromWKB(), MultiPolygonFromText(), MultiPolygonFromWKB(), NumGeometries(), NumInteriorRings(), NumPoints(), PointFromText(), PointFromWKB(), PointN(), PolyFromText(), PolyFromWKB(), PolygonFromText(), PolygonFromWKB(), SRID(), StartPoint(), Touches(), X(), Y()GLength()📌 Geometry arguments
📌 Parser
\N (=! NULL)📌 Syntax
PROCEDURE ANALYSE()📌 Client
-ssl, --ssl-verify-server-cert📌 Utility
--fix-db-names, --fix-table-names📌 Server option
--temp-pool📌 Option
--ndb perrorDISABLE_SHARED Cmake📌 Partitioning
generic partitioning handler📌 INFORMATION_SCHEMA Tables
GLOBAL_VARIABLES, SESSION_VARIABLES, GLOBAL_STATUS, SESSION_STATUSINNODB_LOCKS, INNODB_LOCK_WAITS📌 Performance Schema Tables
setup_timers📌 Library
libmysqld📌 InnoDB
innodb_file_format, innodb_file_format_check, innodb_file_format_max innodb_large_prefix, innodb_support_xa, innodb_undo_logs, Innodb_available_undo_logs, innodb_undo_tablespaces, internal_tmp_disk_storage_engine📌 DTrace
📌 Statement
ALTER TABLE ... UPGRADE PARTITIONING