您好,登錄后才能下訂單哦!
這篇文章主要介紹“MySQL 8.0.20的新特性有哪些”,在日常操作中,相信很多人在MySQL 8.0.20的新特性有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”MySQL 8.0.20的新特性有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
不會再發生一部分成功,一部分失敗的情況,要么全成功,要么全部回滾。
Incompatible Change: The grant tables in the mysql system database are now InnoDB (transactional) tables.
Previously, these were MyISAM (nontransactional) tables.
This change applies to these tables: user, db, tables_priv, columns_priv, procs_priv, proxies_priv
Previously, an account-management statement that named multiple users could succeed for some users and fail for others.
Now, each statement is transactional and either succeeds for all named users or rolls back and has no effect if any error occurs.
The statement is written to the binary log if it succeeds, but not if it fails; in that case, rollback occurs and no changes are made
MySQL now supports roles
expire-logs-days # 已經廢棄,binlog_expire_logs_seconds取代,默認為30天
innodb_undo_tablespaces # 已經廢棄,innodb總會創建2個undo表空間,需要增加,使用CREATE UNDO TABLESPACE
internal_tmp_disk_storage_engine # 已經廢棄,8.0.16開始內部磁盤臨時表默認均為InnoDB存儲引擎。
character-set-server=utf8 #現在該參數utf8為utf8mb3別名,以后將改為utf8mb4
innodb_read_only # 原來只對InnoDB表生效,無法creating dropping,現在對所有表生效。
--log-tc-size #The hardcoded memory page size of 8KB for the memory-mapped
# transaction coordinator was too small for platforms such as
# ARM64 and PowerPC where the page size is much larger.
# 現在默認為內存頁的6倍。
validate_password_check_user_name # 現在默認打開
validate_password # 默認打開,會拒絕與當前用戶名相同的密碼。
innodb_deadlock_detect # 可以禁止死鎖檢測,防止多線程等待同一個鎖引發處理緩慢,可以通過設置 innodb_lock_wait_timeout
innodb_checksum_algorithm # 在5.6.3中取代了參數innodb_checksums
innodb_flush_method # 現在默認值Unix為fsync,windows為unbuffered
innodb_support_xa # 被移除, 默認支持兩階段提交
SET PERSIST # SET引入設置可以動態global參數的同時會將參數持久化到data目錄下的mysqld-auto.cnf文件,服務器啟動會加載。
performance_schema.variables_info # 可以顯示最近修改的參數以及源。
INFORMATION_SCHEMA.TABLES VERSION:.frm .trg .trn文件將不存在,取而代之的均為數據字典,version字段寫死為10,這是最后一個
支持.frm的版本MySQL 5.7的版本號。
mysql_install_db:已經被移除,初始化數據庫必須使用mysqld --initialize or --initialize-insecure
ibd2sdi:新引入命令行工具,used to extract serialized dictionary information (SDI) from persistent InnoDB tablespaces
優化器現在支持表級別的hint:MERGE and NO_MERGE
SELECT /*+ MERGE(dt) */ * FROM (SELECT * FROM t1) AS dt;
SELECT /*+ NO_MERGE(dt) */ * FROM (SELECT * FROM t1) AS dt;
現在支持invisible index,優化器不會選擇使用索引,但是會正常維護索引,可以測試移除索引造成影響,又不破壞現有結構。
現在performance_schema會收集服務器錯誤:events_errors_summary_global_by_error,
events_errors_summary_by_account_by_error,
events_errors_summary_by_host_by_error,
events_errors_summary_by_thread_by_error,
events_errors_summary_by_user_by_error
performance_schema_error_size:控制收集錯誤數量。
--分區變化
通用分區處理器被移除,MySQL 8.0 InnoDB為唯一支持分區處理的存儲引擎,
移除分區可以用ALTER TABLE ... REMOVE PARTITIONING
升級之前,需要把非InnoDB存儲引擎分區表使用ALTER TABLE ... ENGINE=INNODB轉換為InnoDB
--InnoDB文件變化
InnoDB:當在Data directory外建立表空間時,InnoDB不在創建.isl InnoDB動態鏈接文件,
所以不再支持服務器離線時,修改.isl移動遠程表空間操作,利用redo log定位遠程日志文件。
InnoDB:不再支持壓縮臨時表,當row_format=compressed時,innodb_strict_mode為true(default),create temporary table將報錯
INFORMATION_SCHEMA.INNODB_CACHED_INDEXES:顯示索引緩存在內存中的頁數量。
現在將AUTO_INCREMENT值寫入Redo log,寫入存儲引擎系統表,將自增最大值持久化,設置AUTO_INCREMENT=N不在不生效,
手工update AUTO_INCREMENT 列也生效。
到此,關于“MySQL 8.0.20的新特性有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。