Features Added in MySQL 8.0 limit is exceeded, an undo tablespace can still be made inactive, but it is not truncated until after the next checkpoint. INNODB_METRICS  counters associated with defunct undo truncate flushing operations were removed. Removed counters include:  undo_truncate_sweep_count ,  undo_truncate_sweep_usec , undo_truncate_flush_count , and  undo_truncate_flush_usec . See Section 15.6.3.4, “Undo Tablespaces” . A  posix_fallocate()  operation is not atomic, which makes it possible for a failure to occur between allocating space to a tablespace file and updating the file metadata. Such a failure can leave newly allocated pages in an uninitialized state, resulting in a failure when  InnoDB  attempts to access those pages. To prevent this scenario,  InnoDB  writes a redo log record before allocating a new tablespace page. If a page allocation operation is interrupted, the operation is replayed from the redo log record during recovery. An  AUTOEXTEND_SIZE  size column was added to the INFORMATION_SCHEMA.INNODB_TABLESPACES  table. This is a refinement of the column path operator  ->  introduced in MySQL 5.7;  col->>"$.path"  is equivalent to  JSON_UNQUOTE(col->"$.path") . The inline path operator can be used wherever 21 •Added the  ->>  (inline path) operator, which is equivalent to calling  JSON_UNQUOTE()  on the result of JSON_EXTRACT() . • JSON enhancements.   The following enhancements or additions were made to MySQL’s JSON functionality: • Character set support.   The default character set has changed from  latin1  to  utf8mb4 . The utf8mb4  character set has several new collations, including  utf8mb4_ja_0900_as_cs , the first Japanese language-specific collation available for Unicode in MySQL. For more information, see Section 10.10.1, “Unicode Character Sets” . •The  AUTOEXTEND_SIZE  option, introduced in MySQL 8.0.23, defines the amount by which  InnoDB extends the size of a tablespace when it becomes full, making it possible to extend tablespace size in larger increments. The  AUTOEXTEND_SIZE  option is supported with the  CREATE TABLE ,  ALTER TABLE ,  CREATE TABLESPACE , and  ALTER TABLESPACE  statements. For more information, see Section 15.6.3.9, “Tablespace AUTOEXTEND_SIZE Configuration” . •The  temptable_max_mmap  variable, introduced in MySQL 8.0.23, defines the maximum amount of memory the TempTable storage engine is permitted to allocate from memory-mapped (MMAP) files before it starts storing internal temporary table data on disk. A setting of 0 disables allocation from MMAP files. For more information, see Section 8.4.4, “Internal Temporary Table Use in MySQL” . •As of MySQL 8.0.23,  InnoDB  supports encryption of doublewrite file pages belonging to encrypted tablespaces. The pages are encrypted using the encryption key of the associated tablespace. For more information, see Section 15.13, “InnoDB Data-at-Rest Encryption” . •As of MySQL 8.0.22, the new  innodb_extend_and_initialize  variable permits configuring how  InnoDB  allocates space to file-per-table and general tablespaces on Linux. By default, when an operation requires additional space in a tablespace,  InnoDB  allocates pages to the tablespace and physically writes NULLs to those pages. This behavior affects performance if new pages are allocated frequently. You can disable  innodb_extend_and_initialize  on Linux systems to avoid physically writing NULLs to newly allocated tablespace pages. When innodb_extend_and_initialize  is disabled, space is allocated using  posix_fallocate() calls, which reserve space without physically writing NULLs.