主頁(yè) > 知識(shí)庫(kù) > MySQL 8.0.23 主要更新一覽(新特征解讀)

MySQL 8.0.23 主要更新一覽(新特征解讀)

熱門標(biāo)簽:福州呼叫中心外呼系統(tǒng)哪家好 北京人工外呼系統(tǒng)價(jià)錢 沃克斯電梯外呼線路圖 天智外呼系統(tǒng) 常州電銷外呼系統(tǒng)一般多少錢 地圖標(biāo)注被騙三百怎么辦 400電話鄭州申請(qǐng) 房產(chǎn)智能外呼系統(tǒng)品牌 云南語音外呼系統(tǒng)平臺(tái)

作者:管長(zhǎng)龍
愛可生交付服務(wù)部 DBA,主要負(fù)責(zé) MySQL 及 Redis 的日常問題處理,參與公司數(shù)據(jù)庫(kù)培訓(xùn)的教研授課及開源社區(qū)的運(yùn)營(yíng)工作。
本文來源:原創(chuàng)投稿
* 愛可生開源社區(qū)出品,原創(chuàng)內(nèi)容未經(jīng)授權(quán)不得隨意使用,轉(zhuǎn)載請(qǐng)聯(lián)系小編并注明來源。

上篇文章給大家介紹了MySQL8.0.23安裝超詳細(xì)教程 ,感興趣的朋友點(diǎn)擊查看。

MySQL 8.0.23 已于作日發(fā)布,目前發(fā)布頻率穩(wěn)定保持 3 個(gè)月一次。本次發(fā)布是維護(hù)版本,除了修復(fù)一些 Bug,此版本還增添了一些新功能。

一、不可見列

列可以定義為不可見,例如:

# 創(chuàng)建表時(shí),可使其不可見(ALTER TABLE 也支持)
mysql> CREATE TABLE t1 (col1 INT, col2 INT INVISIBLE);
mysql> INSERT INTO t1 (col1, col2) VALUES(1, 2), (3, 4);

# SQL 語句通過顯式引用它來使用不可見列
mysql> SELECT * FROM t1;
+------+
| col1 |
+------+
|  1 |
|  3 |
+------+

# 如果未引用不可見的列,則該列將不會(huì)出現(xiàn)在結(jié)果中
mysql> SELECT col1, col2 FROM t1;
+------+------+
| col1 | col2 |
+------+------+
|  1 |  2 |
|  3 |  4 |
+------+------+

https://dev.mysql.com/doc/refman/8.0/en/invisible-columns.html

二、查詢屬性

允許應(yīng)用程序?yàn)槠洳樵冊(cè)O(shè)置每個(gè)查詢?cè)獢?shù)據(jù)。

mysql> query_attributes n1 v1 n2 v2;
mysql> SELECT
     mysql_query_attribute_string('n1') AS 'attr 1',
     mysql_query_attribute_string('n2') AS 'attr 2',
     mysql_query_attribute_string('n3') AS 'attr 3';
+--------+--------+--------+
| attr 1 | attr 2 | attr 3 |
+--------+--------+--------+
| v1   | v2   | NULL  |
+--------+--------+--------+

https://dev.mysql.com/doc/refman/8.0/en/query-attribute-udfs.html#udf_mysql-query-attribute-string

三、安全

Doublewrite 文件頁(yè)加密

InnoDB 自動(dòng)加密屬于加密表空間的 Doublewrite 文件頁(yè)面,無需采取任何措施。使用相關(guān)表空間的加密密鑰對(duì) Doublewrite 文件頁(yè)進(jìn)行加密。同一表空間中被寫入數(shù)據(jù)的加密頁(yè)面也會(huì)被寫入 Doublewrite 文件。屬于未加密表空間的 Doublewrite 文件頁(yè)面保持未加密狀態(tài)。在恢復(fù)過程中,加密的 Doublewrite 文件頁(yè)面是未加密狀態(tài)并檢查是否損壞。

https://dev.mysql.com/doc/refman/8.0/en/innodb-data-encryption.html

提高賬戶確定性

為了讓 TCP 連接匹配賬戶更具確定性,在匹配主機(jī)名指定的賬戶前,匹配賬戶的主機(jī)名部分將以以下順序檢查使用主機(jī) IP 地址指定賬戶。

# 指定 IP 地址的帳戶
mysql> CREATE USER 'user_name'@'127.0.0.1';
mysql> CREATE USER 'user_name'@'198.51.100.44';

# 使用 CIDR 表示法指定為 IP 地址的帳戶
mysql> CREATE USER 'user_name'@'192.0.2.21/8';
mysql> CREATE USER 'user_name'@'198.51.100.44/16';

# 使用帶子網(wǎng)掩碼格式的指定為 IP 地址的賬戶
mysql> CREATE USER 'user_name'@'192.0.2.0/255.255.255.0';
mysql> CREATE USER 'user_name'@'198.51.0.0/255.255.0.0';

https://dev.mysql.com/doc/refman/8.0/en/connection-access.html

更精準(zhǔn)的 FLUSH 權(quán)限

授予 RELOAD 權(quán)限的用戶可以執(zhí)行各種操作。在某些情況下,為了使 DBA 避免授予 RELOAD 并使用戶權(quán)限更接近允許的操作,已對(duì) FLUSH 操作的更精細(xì)的特權(quán)控制,以使客戶可以執(zhí)行 FLUSH OPTIMIZER_COSTS,F(xiàn)LUSH STATUS,F(xiàn)LUSH USER_RESOURCES 和 FLUSH TABLES 語句,無需 RELOAD 權(quán)限。

https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv_reload

四、InnoDB

優(yōu)化 TRUNCATE / DROP

當(dāng)用戶對(duì) InnoDB 表空間 TRUNCATE 或 DROP 操作:

  • 對(duì)有龐大緩沖池(>32GB)實(shí)例上的大表刪除
  • 對(duì)具有自適應(yīng)哈希索引引用大量頁(yè)面的表空間
  • TRUNCATE 臨時(shí)表空間

以上情況,MySQL 現(xiàn)在將其標(biāo)記為已刪除,然后從緩沖池懶惰地釋放屬于已刪除表空間的所有頁(yè)面,或者像釋放頁(yè)面一樣重用它們。

新增表空間 AUTOEXTEND_SIZE 屬性

InnoDB 常規(guī)表 CREATE / ALTER TABLESPACE 子句和獨(dú)立表空間的 CREATE / ALTER TABLE 子句新增自動(dòng)擴(kuò)展屬性。原表空間的增長(zhǎng)大小已在 InnoDB 內(nèi)部硬編碼為 1MB [默認(rèn)](page_size * 一個(gè)范圍內(nèi)的頁(yè)面數(shù))。設(shè)置后,表空間的增長(zhǎng)大小可以由用戶決定。

# 創(chuàng)建或修改表時(shí)指定擴(kuò)展空間大小
mysql> CREATE TABLE t1 (c1 INT) AUTOEXTEND_SIZE = 4M;
mysql> ALTER TABLE t1 AUTOEXTEND_SIZE = 4M;

# 查詢?cè)搶傩灾?
mysql> SELECT NAME, AUTOEXTEND_SIZE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES 
    WHERE NAME LIKE 'test/t1';
+---------+-----------------+
| NAME  | AUTOEXTEND_SIZE |
+---------+-----------------+
| test/t1 |     4194304 |
+---------+-----------------+

https://dev.mysql.com/doc/refman/8.0/en/innodb-tablespace-autoextend-size.html

新增 temptable_max_mmap 變量

新變量定義了 TempTable 存儲(chǔ)引擎在開始將內(nèi)部臨時(shí)表數(shù)據(jù)存儲(chǔ)到 InnoDB 磁盤內(nèi)部臨時(shí)表之前,被允許從內(nèi)存映射文件分配的最大內(nèi)存量。temptable_max_mmap = 0 設(shè)置將禁用從內(nèi)存映射文件的分配。

https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_temptable_max_mmap

五、復(fù)制

術(shù)語替換

不推薦使用 CHANGE MASTER TO 語句,改用別名 CHANGE REPLICATION SOURCE TO。該語句的參數(shù)還具有別名,該別名用術(shù)語 SOURCE 代替術(shù)語 MASTER。例如,現(xiàn)在可以將 MASTER_HOST 和 MASTER_PORT 輸入為 SOURCE_HOST 和 SOURCE_PORT。START REPLICA | SLAVE 語句的參數(shù) MASTER_LOG_POS 和 MASTER_LOG_FILE 現(xiàn)在具有別名 SOURCE_LOG_POS 和 SOURCE_LOG_FILE。語句的工作方式與以前相同,只是每個(gè)語句使用的術(shù)語已更改。如果使用舊版本,則會(huì)發(fā)出棄用警告。

直接從禁用 GTID 的主機(jī)復(fù)制到啟用 GTID 的從機(jī)

CHANGE REPLICATION SOURCE TO 語句新增選項(xiàng): ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS = [OFF,LOCAL,UUID>]

允許數(shù)據(jù)在非 GTID 實(shí)例和 GTID 實(shí)例之間傳輸。

https://dev.mysql.com/doc/refman/8.0/en/replication-gtids-assign-anon.html

在 MTS 死鎖檢測(cè)基礎(chǔ)結(jié)構(gòu)中包含 MDL 和 ACL 鎖

將提供多線程的 REPLICA 所需的線程序列化基礎(chǔ)結(jié)構(gòu)與 MDL 和 ACL 訪問序列化基礎(chǔ)結(jié)構(gòu)集成在一起,該多線程 REPLICA 與 SOURCE 保持相同的提交順序。其動(dòng)機(jī)是能夠在 REPLICA 主動(dòng)處理變更流時(shí)在 REPLICA 上執(zhí)行任何客戶端語句。此類語句可能會(huì)創(chuàng)建死鎖,必須對(duì)其進(jìn)行檢測(cè),并最終將其破壞以繼續(xù)執(zhí)行。

組復(fù)制

異步復(fù)制通道的自動(dòng)連接故障轉(zhuǎn)移,將確保接收方的發(fā)送方列表與組復(fù)制成員身份更改同步。

六、X 協(xié)議

經(jīng)典的 MySQL 協(xié)議,如果 SQL 查詢使用元數(shù)據(jù)鎖定或睡眠功能,則將定期檢查與服務(wù)器的連接以驗(yàn)證其是否仍然有效。 如果不是,則可以停止查詢,以便它不會(huì)繼續(xù)消耗資源。以前,X 協(xié)議不執(zhí)行這些檢查,并假定連接仍然有效?,F(xiàn)在已為 X 協(xié)議添加了檢查。

從 MySQL 8.0.23 開始,服務(wù)器將通知所有客戶端有關(guān)它是剛剛關(guān)閉連接還是自行關(guān)閉的信息??蛻舳丝梢允褂么诵畔頉Q定重新連接是否有意義,然后重試。

七、其他

優(yōu)化哈希聯(lián)接的哈希表的實(shí)現(xiàn)。目的是提高性能,使用更少的內(nèi)存并改善內(nèi)存控制。

用標(biāo)準(zhǔn) C++11 替換了部分舊的 InnoDB 代碼。加強(qiáng)代碼中使用原子性的規(guī)則和語義,從而使代碼更符合標(biāo)準(zhǔn)。

八、棄用和移除

棄用 relay_log_info_repository 和 master_info_repository 。當(dāng)用戶設(shè)置或讀取 relay_log_info_repository 或 master_info_repository 變量的值時(shí),將出現(xiàn)棄用警告。未來,用于存儲(chǔ)復(fù)制配置和元數(shù)據(jù)的唯一選項(xiàng)將在事務(wù)系統(tǒng)表中。

不贊成使用 FLUSH HOSTS 語句,而建議使用 TRUNCATE performance_schema.host_cache,并將在以后的 MySQL 版本中刪除。

文章參考

MySQL 8.0.23 Release Notes:

https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-23.html

The MySQL 8.0.23 Maintenance Release is Generally Available

https://mysqlserverteam.com/the-mysql-8-0-23-maintenance-release-is-generally-available/

到此這篇關(guān)于MySQL 8.0.23 主要更新一覽(新特征解讀)的文章就介紹到這了,更多相關(guān)MySQL 8.0.23 更新內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • mysql8.0.23 linux(centos7)安裝完整超詳細(xì)教程
  • MySQL8.0.23安裝超詳細(xì)教程
  • Centos7下安裝MySQL8.0.23的步驟(小白入門級(jí)別)

標(biāo)簽:移動(dòng) 黔東 珠海 鹽城 沈陽 徐州 拉薩 沈陽

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySQL 8.0.23 主要更新一覽(新特征解讀)》,本文關(guān)鍵詞  MySQL,8.0.23,主要,更新,一覽,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MySQL 8.0.23 主要更新一覽(新特征解讀)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于MySQL 8.0.23 主要更新一覽(新特征解讀)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章