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
구문의 Engine
CREATE 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 perror
DISABLE_SHARED
Cmake📌 Partitioning
generic partitioning handler
📌 INFORMATION_SCHEMA Tables
GLOBAL_VARIABLES
, SESSION_VARIABLES
, GLOBAL_STATUS
, SESSION_STATUS
INNODB_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