1. 程式人生 > >關於MySQL 8.0的幾個重點,都在這裡

關於MySQL 8.0的幾個重點,都在這裡

導讀

作者:田帥萌(郵箱:[email protected],歡迎交流)

知數堂MySQL DBA班第9期優秀學員,Python運維開發班第5期學員,現任職知數堂助教

歡迎交流關於MySQL8.0的新特性和bug,本文的部分連結需要翻牆哦,將持續更新~

一、關於MySQL Server的改進

1.1 redo log 重構 

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

http://dimitrik.free.fr/blog/archives/2017/10/mysql-performance-80-redesigned-redo-log-readwrite-workloads-scalability.html

1.2 MySQL DDL 

在MySQL8.0中實現了DDL的原子性。

https://mysqlserverteam.com/atomic-ddl-in-mysql-8-0/

1.3 直方圖 

在MySQL8.0中添加了直方圖的概念,用於索引的統計和分析。

https://mysqlserverteam.com/histogram-statistics-in-mysql/

1.4 降序索引 

MySQL 8.0 開始提供按降序啦~

https://dev.mysql.com/doc/refman/8.0/en/descending-indexes.html

1.5 隱藏索引 

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

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

1.6 臨時表的改進 

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

在MySQL8.0中,MEMORY儲存引擎也將被TempTable儲存引擎替換為內部臨時表的預設儲存引擎。這個新引擎為VARCHAR和VARBINARY列提供更高效的儲存空間。

https://dev.mysql.com/doc/refman/8.0/en/internal-temporary-tables.html

1.7 持久的全域性變數 

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

http://lefred.be/content/mysql-8-0-changing-configuration-easily-and-cloud-friendly/

1.8 redo和undo的加密 

在MysQL 5.7中,可以為每個表的表空間進行加密。而在MySQL8.0中,還可以為UNDO和REDO LOG進行加密,從而提高了MySQL的安全性。

https://dev.mysql.com/doc/refman/8.0/en/innodb-tablespace-encryption.html#innodb-tablespace-encryption-redo-log

1.9 Innodb 鎖的修改 

在SQL裡新增引數FOR UPDATE NOWAIT和FOR UPDATE SKIP LOCKED,可以設定跳過鎖的等待,或者跳過鎖定。

https://dev.mysql.com/doc/refman/8.0/en/innodb-locking-reads.html#innodb-locking-reads-nowait-skip-locked

1.10 視窗函式 

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

http://elephantdolphin.blogspot.com/2017/09/mysql-8s-windowing-function-part-1.html

1.11 新的優化器 

在MySQL 8.0.3中,引入了新的優化器SET_VAR,用於在SQL中指定引數配置。

https://mysqlserverteam.com/new-optimizer-hint-for-changing-the-session-system-variable/

1.12 角色 

在MySQL8.0中,添加了角色的功能。更方便了使用者的管理

http://datacharmer.blogspot.com/2017/09/revisiting-roles-in-mysql-80.html

1.13 字符集的修改 

在MySQL8.0.1中,MySQL支援了Unicode 9.0,並且修改了預設字符集為utf8mb4

http://lefred.be/content/mysql-clients-and-emojis/

二、關於MySQL 複製的改進

2.1 複製方面修改 

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

http://datacharmer.blogspot.com/2017/09/revisiting-roles-in-mysql-80.html

2.2 更高效Json複製 

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

https://mysqlhighavailability.com/efficient-json-replication-in-mysql-8-0/

2.3 複製增強 

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

https://mysqlhighavailability.com/replication-features-in-mysql-8-0-3/

2.4 MySQL 複製新功能 

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

https://mysqlhighavailability.com/mysql-8-0-new-features-in-replication/

三、關於MySQL MGR的改進

3.1 組複製白名單的支援 

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

https://mysqlhighavailability.com/hostname-support-in-group-replication-whitelist/

3.2 MySQL INNODB Cluster 新功能 

在MySQL INNODB Cluster 新增加的功能:

https://mysqlserverteam.com/mysql-innodb-cluster-whats-new-in-the-8-0-ga-release/

3.3 MySQL MGR的監控 

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

https://mysqlhighavailability.com/more-p_s-instrumentation-for-group-replication/

四、關於MySQL bug修復

4.1 自增列bug修復(199) 

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

http://lefred.be/content/bye-bye-bug-199/

640.gif?

掃碼加入知數堂技術交流QQ群

(群號:579036588)

群內可@各位助教了解更多課程資訊

640.png?

加入知數堂

挑戰40萬+年薪!

640?640?640?640?

知數堂

葉金榮與吳炳錫聯合打造

領跑IT精英培訓

行業資深專家強強聯合,傾心定製

MySQL實戰/MySQL優化 / Python/ SQL優化

數門精品課程

緊隨技術發展趨勢,定期優化培訓教案

融入大量生產案例,貼合企業一線需求

社群陪伴學習,一次報名,可學1年

DBA、開發工程師必修課

上千位學員已華麗轉身,薪資翻番,職位提升

改變已悄然發生,你還在等什麼?

640.png?

掃碼下載知數堂精品課程試聽視訊

或點選“閱讀原文”直達下載地址

(MySQL 實戰/優化、大資料實戰、Python開發,及SQL優化等課程)

密碼:hg3h

640?wx_fmt=png

640.png?

相關推薦

關於MySQL 8.0重點這裡

導讀作者:田帥萌(郵箱:[email protected],歡迎交流)知數堂MySQL

MySQL 8.0自適應參數橫空出世

之前 正常 進程啟動 命令 數值 can erro 打印 存在 MySQL 8.0 首個自適應參數橫空出世MySQL 8.0推出一個號稱可以自適應服務器的參數,保證在各種不同的服務器、虛擬機、容器下自動適配服務器資源。本文將為大家詳細介紹該參數。 作者 李春·沃趣科技聯合創

程式設計師成長需要經歷那階段需要掌握哪些內容

對於程式設計師的成長,我們一半可以分為三個大的階段,一是初級(0到3年);二是中級(3到5年);三是高階(5年以上)。這其中不僅僅需要的是時間的錘鍊,還有技術上的提升。 ​ 階段一:初級階段。 這個階段的學習可能是科班出身的學生在本碩博階段完成的,也可能是半路出家的學生線上下IT教育培訓機

MySQL 8.0 正式版釋出MySQL 5.7 快 2 倍!

點選上方“CSDN”,選擇“置頂公眾號”關鍵時刻,第一時間送達!MySQL 8.0 正式版 8.

互聯網大咖要收藏的網站純幹貨

發現 分析 選擇 ppt 咨詢 描述 意思 官方 img 有句俗話說的好:裝逼首選豆瓣,吹牛當然還是上知乎!這句話從側面反映出了網民朋友們在互聯網上的”淘樂樂“的心態!如今,誰的pc上沒有幾個收藏夾,估計沒有的人都會覺得不好意思吧。 如今,大家發現好的網站都會第一時間放到自

安裝mysql 8.0版本時使用front連接報1251錯誤或者navicat 連接報錯2059解決方案

with clas 解決 ring class func eve 刷新 IE 這個錯誤出現的原因是在mysql8之前的版本中加密規則為mysql_native_password,而在mysql8以後的加密規則為caching_sha2_password。 解決此問題有兩

安裝mysql 8.0版本時使用navicat 連接報1251錯誤解決方案

sha cal TE roo oot string XP 規則 nat 今天安裝mysql8 使用navicat 連接時報錯 1251 這個錯誤出現的原因是在mysql8之前的版本中加密規則為mysql_native_password,而在mysql8以後的加密規則為ca

使用 systemd 配置多 MySQL 8.0 實例

err var data 執行 instance doc 沒有 ffi ces 註意:因為systemd能夠在安裝了systemd支持的平臺上管理多個MySQL實例, 所以mysqld_multi和 mysqld_multi.server是不必要的,並且沒有安裝。 要使用多

MySQL-8.0.12資料庫的解除安裝安裝和海量sql資料匯入

     最近學習mySQL,作為一名新手,遇到了三個問題。      第一:如何解除安裝乾淨原來的mySQL;      第二:如何下載並正確安裝mySQL; &nb

MySQL 8.0資料庫使用連線工具報錯"plugin caching_sha2_password could not be loaded "。

首先定位原因:安裝的時候最後一步就提示8.0和5.6版本的加密方式不同。 解決方法:啟動MySQL--server 命令列。 第二步,登入MySQL,輸入SQL: alter user 'root'@'localhost' identified with mysql_native_

MySQL 8.0裡GROUP BY有變化注意了

如題所示,MySQL 8.0開始 group by 預設是沒有排序的,那MySQL 8.0之前和 8.0 就有可能結果出現不同 需要警惕 執行如下SQL: 下面是8.0 版本: 執行相同的SQL: 如果這種情況下 進行分頁 5.7 版本: 8.0版本: 由上可見,兩個結果

如何在CentOS 7/6RHEL 7/6和Fedora 28/27/26上安裝MySQL 8.0

MySQL是一個免費的開源資料庫管理系統,常用於Web應用程式中,用於儲存和檢索記錄和資訊。 新增MySQL儲存庫 MySQL不再通過基本作業系統映像分發或在OS儲存庫中可用。 因此,您需要新增MySQL的官方儲存庫來安裝MySQL社群伺服器。 ### CentOS 7 / RHEL 7 ###

win7下mysql-8.0.12-winx64登入密碼忘記如何修改

使用登入時跳過驗證的方式重置root密碼 步驟1:先關閉MySQL服務,然後使用“–skip-grant-tables”配置項,跳過許可權驗證方式重啟MySQL服務: 這裡使用的指令是“mysqld –shared-memory –skip-grant-tab

MySQL 8.0 自帶的4系統資料庫介紹

information_schema:這個資料庫儲存了mysql伺服器所有資料庫的資訊。比如資料庫的名、資料庫的表、訪問許可權、資料庫表的資料型別,資料庫索引的資訊等等。 performance_schema:主要用於收集資料庫伺服器效能引數,可用於監控伺服器在一個較低級別的執行過程中的資源消耗、資源等待等

MySQL常用發查詢(聚合函式分組等)

今天給大家分享幾個MySQL常用的查詢,廢話不多說,直接上圖 先建立一個數據庫,是從網上爬下來的,在環境linux中開啟MySQL,執行 -- 建立 "京東" 資料庫 create database jing_dong charset=utf8; -- 使用 "京東" 資料庫 use j

mysql-8.0.13-winx64解壓版安裝教程(通過查詢各種方法排除各種錯誤親手安裝成功)

2、解壓到本地; 3、配置環境變數:     (1)新建系統變數:變數名:MYSQL_HOME        變數值:mysql解壓路徑     (2)編輯Path系統變數:新建:%MYSQL_HOME%\bin     (3)確定確定再確定。 4、

mysql-8.0.13-winx64解壓版安裝親測有效

1.下載mysql後直接解壓到你喜歡的資料夾 接下來一定要安裝順序來 #先生成data檔案,不要自己建立 2.在cmd裡輸入mysqld --initialize-insecure 等待 接下來輸入mysqld install成功 3.net start mys

MySql-8.0.12安裝更改root使用者密碼使用Navicat客戶端連線

MySql-8.0.12安裝,更改root使用者密碼,使用Navicat客戶端連線 很久沒用mysql,今天從官網上下載最新的mysql-8.0.12安裝,發現很多東西都不一樣了,在這裡記錄一下。Mysql安裝包下載:https://dev.mysql.com/downloads/mys

安裝mysql-8.0.13-winx64出現的各種問題及解決辦法。(修改密碼caching-sha2-passwordmysqld:error等)

 1.安裝mysql-8.0.13-winx64,出現如下錯誤: 原因:my.ini檔案格式是utf-8 解決辦法,my.ini檔案儲存為ANSI格式檔案    2.當在執行命令:mysqld --initialize --console時,

26MySQL 8.0參考手冊 5.1.13伺服器關閉程序

伺服器停止接受新的連線。為防止在關閉期間啟動新活動,伺服器通過關閉它通常監聽連線的網路介面的處理程式來停止接受新的客戶端連線:TCP / IP埠,Unix套接字檔案,Windows命名管道和Windows上的共享記憶體。伺服器終止當前活動。對於與客戶端連線關聯的每個執行緒,伺服器都會中斷到客戶端的連線並將該執