中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

MySQL 8.0 技術(shù)詳解

2021-02-21    分類(lèi): 網(wǎng)站建設(shè)

MySQL 8.0 簡(jiǎn)介

MySQL 5.7 到 8.0,Oracle 官方跳躍了 Major Version 版本號(hào),隨之而來(lái)的就是在 MySQL 8.0 上做了許多重大更新,在往企業(yè)級(jí)數(shù)據(jù)庫(kù)的路上大步前行,全新 Data Dictionary 設(shè)計(jì),支持 Atomic DDL,全新的版本升級(jí)策略,安全和賬號(hào)管理加強(qiáng),InnoDB 功能增強(qiáng)等,目前小版本已經(jīng) release 到 8.0.16,新的功能仍然在持續(xù)推出。

RDS MySQL 8.0 產(chǎn)品是阿里云推出的 MySQL 系列云產(chǎn)品之一,使用完全兼容 MySQL 8.0 的阿 里云 AliSQL 8.0 分支,除了官方在 MySQL 8.0 推出的全新功能外,AliSQL 沉淀了許多在 Alibaba 集團(tuán)電商業(yè)務(wù)和云上幾十萬(wàn)客戶(hù)在使用 MySQL 過(guò)程中遇到的問(wèn)題和需求,以此來(lái)加固AliSQL, 提升 AliSQL 的性能和穩(wěn)定性。

下面分別對(duì) MySQL 8.0 和 AliSQL 8.0 相關(guān)的版本和功能做簡(jiǎn)短的介紹:

MySQL 8.0 版本更新

1. 數(shù)據(jù)字典

MySQL 8.0 摒棄了 Server Layer 定義的 FRM 文件和其它非事務(wù)表,使用了一組 InnoDB 表來(lái) 保存數(shù)據(jù)字典,支持事務(wù)特性。

2. Atomic DDL

在 Data Dictionary 支持事務(wù)特性的基礎(chǔ)上,8.0 增加了一個(gè) DDL log 字典表,用來(lái)協(xié)調(diào)在

DDL 過(guò)程中,對(duì)數(shù)據(jù)字典,文件系統(tǒng) 和 事務(wù)系統(tǒng)的修改,做到原子性。

3. 升級(jí)

從 8.0.16 開(kāi)始,對(duì)于系統(tǒng)表的修改,拋棄了 mysql_upgrade工具,使用在系統(tǒng)重啟的時(shí)候,進(jìn) 行升級(jí)。

4. 安全和賬號(hào)管理

賬號(hào)方面,從 8.0 開(kāi)始,支持 role 對(duì)權(quán)限進(jìn)行便捷管理,以及新增多個(gè)系統(tǒng)權(quán)限,分別對(duì)應(yīng)新 增了 ROLE_EDGES,GLOBAL_GRANTS 兩個(gè)系統(tǒng)表;mysql schema 下的涉及權(quán)限和用戶(hù)相關(guān)的表 更改成 InnoDB 引擎,支持事務(wù)特性,保證了賬號(hào)管理語(yǔ)句的原子性。

認(rèn)證方面,caching_sha2_password 作為默認(rèn)的認(rèn)證 plugin,以提升安全,但要注意并不能和 8.0 之前的client進(jìn)行兼容。

鏈路加密,如果編譯了Openssl 1.1.1 及以上,MySQL 8.0 ssl 將支持到 TLSv1.3 版本。

系統(tǒng)賬號(hào),在 8.0.16 新增 SYSTEM_USER 權(quán)限,用于區(qū)分 系統(tǒng)賬號(hào)還是普通賬戶(hù),可以對(duì)用戶(hù) 進(jìn)行分類(lèi)管理。

5. Auto increment 持久化

在 InnoDB 引擎中,新增了一個(gè)引擎私有的系統(tǒng)表 innodb_dynamic_metadata,自增值就保存 在這個(gè)表里,在對(duì)每張表進(jìn)行修改 auto increment 值的時(shí)候,都使用 redo log 進(jìn)行保護(hù),在做

heckpoint 的時(shí)候,持久化到這個(gè)系統(tǒng)表中,保證下次重啟后,auto increment 能夠從持久化中恢 復(fù)出來(lái),并且不受事務(wù)上下文回滾而影響。

6. 死鎖檢測(cè)

在高并發(fā)的情況下,InnoDB 引擎中對(duì)于7. 臨時(shí)表

在 InnoDB 引擎中,用戶(hù)創(chuàng)建的臨時(shí)表將統(tǒng)一到 ibtmp 文件的臨時(shí)表空間中; 對(duì)于系統(tǒng)運(yùn)行過(guò) 程中產(chǎn)生內(nèi)存臨時(shí)表,8.0后啟用了新的 TempTable 引擎,支持 blob 字段,功能上優(yōu)于 memory ngine。

8. Lock

SELECT ... FOR SHARE 和 SELECT ... FOR UPDATE 新增了 NOWAIT 和SKIP LOCKED 語(yǔ)法,減少長(zhǎng)時(shí)間和非必要的阻塞。

9. Instant add column

InnoDB 解決了長(zhǎng)期困擾 DBA 的加字段要 copy 整張表數(shù)據(jù)的問(wèn)題。現(xiàn)在可以快速的增加字段,只修改數(shù)據(jù)字典,而不用修改表中的記錄本身。

10. 并行查詢(xún)

InnoDB 目前支持在 clustered index 上進(jìn)行并行查詢(xún),提供innodb_parallel_read_threads,https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_parallel_read_threads,參數(shù)控制session內(nèi)的并行度。

11. Redo優(yōu)化

Redo的寫(xiě)入一直是 InnoDB 高并發(fā)情況下的瓶頸,8.0 開(kāi)始:

  • 用戶(hù)線程可以并發(fā)的copy redo 日志到 log buffer中
  • 用戶(hù)線程可以以更松散的方式把 dirty block 加入到臟塊鏈表中
  • 獨(dú)立的寫(xiě)線程完成 redo 的持久化

12. Json加強(qiáng)

在Json上,8.0 增加了更多的功能性,詳見(jiàn) MySQL 8.0 的 document。

13. Partial update on lob

InnoDB 繼續(xù)優(yōu)化 partial update on lob data,對(duì)于僅僅修改很少字節(jié)的 lob 字段,能夠大幅 減少 undo data,并提升效率。

14. 優(yōu)化器和對(duì)象相關(guān)

1) 支持 invisible index,方便用戶(hù)和 DBA 調(diào)試 statement。

2)descending indexes,提升降序掃描的效率。

3)Common table expressions,支持 with 語(yǔ)法完成。

4)Window functions,增加大量窗口函數(shù)

5)Regular expression,重新設(shè)計(jì)了正則表達(dá)式的支持。

AliSQL 8.0 功能介紹

除了 MySQL 8.0 官方的特性以外,AliSQL 8.0 在新功能,性能提升,穩(wěn)定性保證,可診斷性上 做了大量的改進(jìn):

1. 診斷

Top SQL:

AliSQL 在 statement 級(jí)別上,增加了新的性能診斷指標(biāo),方便更快更準(zhǔn)確的量化 SQL 的開(kāi)銷(xiāo):


效果如下所示:


表和索引統(tǒng)計(jì)

新增表和索引級(jí)別的統(tǒng)計(jì):


InnoDB IO 統(tǒng)計(jì)


2. Sequence

AliSQL 8.0 增加對(duì) Sequence 對(duì)象的支持,方便和高效的獲取單調(diào)唯一值:


3. 大文件異步刪除

InnoDB 大文件刪除帶來(lái)穩(wěn)定性開(kāi)銷(xiāo),所以 AliSQL 8.0 提供了異步刪數(shù)據(jù)文件的機(jī)制:

參數(shù)設(shè)置:


展示臨時(shí)文件列表:


4. 隱含主鍵

AliSQL 針對(duì)用戶(hù)沒(méi)有建 PK 的表,默認(rèn)添加一個(gè)隱含主鍵,以加速 slave 端的 SQL apply。 查看方法:


5. 事務(wù)超時(shí)

AliSQL 新增 kill_idle_transaction_timeout 參數(shù),以便對(duì)超時(shí)的事務(wù)連接進(jìn)行 kill,防止事務(wù)長(zhǎng)時(shí)間未提交帶來(lái)的系統(tǒng)風(fēng)險(xiǎn)。

6. Rotate slow log

AliSQL 8.0 針對(duì) slow log 收集過(guò)程中,對(duì)用戶(hù)實(shí)例的影響,以及truncate帶來(lái)的阻塞可能,提 供了rotate slow log table的功能,影響更小,更快捷,并保證零數(shù)據(jù)丟失的收集方式。


7. 審計(jì)日志

AliSQL 8.0 重新設(shè)計(jì)的 audit log 模塊,提供了四種刷新策略,分別是:


提供適合不同業(yè)務(wù)模式的 audit log 配置供用戶(hù)選擇。

8. 安全特性

AliSQL 針對(duì) ssl 鏈路,靜態(tài)編譯了Openssl 1.0 版本,目前支持到 TLSv1.2 版本。

9. 優(yōu)化

AliSQL 針對(duì) semi sync 和 MDL 進(jìn)行了性能優(yōu)化,提升了 semi sync 的性能,大幅減少了 MDL 鎖阻塞的可能性。

本文題目:MySQL 8.0 技術(shù)詳解
URL地址:http://www.rwnh.cn/news/102095.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站策劃、企業(yè)建站做網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)
桐乡市| 五常市| 大丰市| 合山市| 岳普湖县| 盘锦市| 潮安县| 马鞍山市| 米泉市| 项城市| 广灵县| 常熟市| 广丰县| 株洲市| 宁陕县| 开化县| 新乡市| 西乌珠穆沁旗| 汉中市| 永川市| 盖州市| 尚义县| 漳浦县| 丁青县| 额尔古纳市| 丹寨县| 澄江县| 浦东新区| 潢川县| 土默特右旗| 丰顺县| 平利县| 江川县| 浦北县| 乌什县| 怀宁县| 双柏县| 藁城市| 鹰潭市| 阿鲁科尔沁旗| 安陆市|