2021-02-21 分類: 網(wǎng)站建設(shè)
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)客戶在使用 MySQL 過(guò)程中遇到的問(wèn)題和需求,以此來(lái)加固AliSQL, 提升 AliSQL 的性能和穩(wěn)定性。
下面分別對(duì) MySQL 8.0 和 AliSQL 8.0 相關(guān)的版本和功能做簡(jiǎn)短的介紹:
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)限和用戶相關(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)還是普通賬戶,可以對(duì)用戶 進(jìn)行分類管理。
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 引擎中,用戶創(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. 并行查詢
InnoDB 目前支持在 clustered index 上進(jì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的寫入一直是 InnoDB 高并發(fā)情況下的瓶頸,8.0 開(kāi)始:
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,方便用戶和 DBA 調(diào)試 statement。
2)descending indexes,提升降序掃描的效率。
3)Common table expressions,支持 with 語(yǔ)法完成。
4)Window functions,增加大量窗口函數(shù)
5)Regular expression,重新設(shè)計(jì)了正則表達(dá)式的支持。
除了 MySQL 8.0 官方的特性以外,AliSQL 8.0 在新功能,性能提升,穩(wěn)定性保證,可診斷性上 做了大量的改進(jìn):
1. 診斷
Top SQL:
AliSQL 在 statement 級(jí)別上,增加了新的性能診斷指標(biāo),方便更快更準(zhǔn)確的量化 SQL 的開(kāi)銷:
效果如下所示:
表和索引統(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)銷,所以 AliSQL 8.0 提供了異步刪數(shù)據(jù)文件的機(jī)制:
參數(shù)設(shè)置:
展示臨時(shí)文件列表:
4. 隱含主鍵
AliSQL 針對(duì)用戶沒(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ì)用戶實(shí)例的影響,以及truncate帶來(lái)的阻塞可能,提 供了rotate slow log table的功能,影響更小,更快捷,并保證零數(shù)據(jù)丟失的收集方式。
7. 審計(jì)日志
AliSQL 8.0 重新設(shè)計(jì)的 audit log 模塊,提供了四種刷新策略,分別是:
提供適合不同業(yè)務(wù)模式的 audit log 配置供用戶選擇。
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 鎖阻塞的可能性。
當(dāng)前文章:MySQL 8.0 技術(shù)詳解
鏈接地址:http://jinyejixie.com/news45/102095.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開(kāi)發(fā)、品牌網(wǎng)站設(shè)計(jì)、小程序開(kāi)發(fā)、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(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)
猜你還喜歡下面的內(nèi)容