mysql8鎖改進 MySQL 8 0的最新改進

2021-10-17 17:57:57 字數 1832 閱讀 1954

一、關於mysql server的改進

1.1 redo log 重構

在mysql8.0中重新設計了redo log,主要改進fsync,使得效率更高,減少鎖,優化flush機制,不會頻繁flush。同時,支援更高使用者併發請求。

1.2 mysql ddl

在mysql8.0中實現了ddl的原子性。

1.3 直方圖

在mysql8.0中新增了直方圖的概念,用於索引的統計和分析。

1.4 降序索引

mysql 8.0 開始提供按降序啦~

1.5 隱藏索引

mysql8.0支援隱藏索引,在對索引的新增和修改,可以通過隱藏索引來實現,方便了索引的管理。

1.6 臨時表的改進

在5.7以來,所有內部臨時表成為"ibtmp1"的共享表空間。此外臨時表的元資料也儲存在記憶體中。

在mysql8.0中,memory儲存引擎也將被temptable儲存引擎替換為內部臨時表的預設儲存引擎。這個新引擎為varchar和varbinary列提供更高效的儲存空間。

1.7 持久的全域性變數

mysql8.0通過新語法restart,使下次重啟仍然生效。

1.8 redo和undo的加密

在mysql 5.7中,可以為每個表的表空間進行加密。而在mysql8.0中,還可以為undo和redo log進行加密,從而提高了mysql的安全性。

1.9 innodb 鎖的修改

在sql裡新增引數for update nowait和for update skip locked,可以設定跳過鎖的等待,或者跳過鎖定。

1.10 視窗函式

在mysql8.0中,新增了視窗函式,它可以用來實現若干新的查詢方式,以便更好地用於資料統計和分析。

1.11 新的優化器

在mysql 8.0.3中,引入了新的優化器set_var,用於在sql中指定引數配置。

1.12 角色

在mysql8.0中,新增了角色的功能。更方便了使用者的管理

1.13 字符集的修改

在mysql8.0.1中,mysql支援了unicode 9.0,並且修改了預設字符集為utf8mb4

二、關於mysql 複製的改進

2.1 複製方面修改

在mysql8.0.3中,關於binlog和複製方面的新的改變。

2.2 更高效json複製

在mysql8.0.3中,關於json複製更高效,並提供了新的json功能。在binlog中只記錄了update修改的內容,而不是全部記錄。

2.3 複製增強

在mysql8.0.3中,關於對複製的預設引數的修改、對組複製,都增加了「動態跟蹤、除錯日誌」等更多效能方面的監控工具。

2.4 mysql 複製新功能

在mysql8.0中,對於複製的改進,增加了可觀察性,提供了複製的效率(基於writeset的並行複製)。

三、關於mysql mgr的改進

3.1 組複製白名單的支援

在mysql8.0.4 中,對組複製白名單的支援,有效地提高了組複製的安全性。

3.2 mysql innodb cluster 新功能

在mysql innodb cluster 新增加的功能:

3.3 mysql mgr的監控

提高了mysql組複製的可觀察性和可管理性,並在mysql8.0.4中增強了相關工具。

四、關於mysql bug修復

4.1 自增列bug修復(199)

在mysql8.0 關於自增列的bug的修復。不再採用max(自增id)+1的做法來確定下乙個自增id。

mysql8問題 mysql8中的問題

only full group by 對於group by聚合操作,如果在 select 中的列,沒有在 group by 現,那麼這個sql是不合法的,因為列不在group by從句中。no auto value on zero 該值影響自增長列的插入。預設設定下,插入0或null代表生成下乙個自...

mysql8建立不了使用者 mysql8建立使用者

假如是mysql8版本的話,使用 grant all privileges to 使用者 localhost identified by 自定義密碼 會報錯,因為要先建立使用者再進行賦權,不能同時進行 建立使用者 create user 使用者名稱 localhost identified by 密...

mysql 8 命令 Mysql8常用命令

1 安裝 移除原來的mysql服務 mysqld remove mysql mysqld install 2 初始化 mysqld initialize 3 啟動 net start mysql 4 登陸 mysql u root p 5 修改密碼 mysqld shared memory skip...