一李破、MySQL 8.0主要新特性
1构资、性能峰值幾乎是5.7的兩倍
2、可快速在線(xiàn)新增列——instant add new column
3嫌变、可并行寫(xiě)入redo log响禽,提升大量事務(wù)寫(xiě)入時(shí)的性能
4、可在線(xiàn)調(diào)整redo log buffer和undo log相關(guān)設(shè)置
5嘉蕾、可針對(duì)單個(gè)會(huì)話(huà)SET_VAR設(shè)置變量贺奠,提升靈活性
6、新增更多數(shù)據(jù)字典错忱,元數(shù)據(jù)全部采用InnoDB引擎存儲(chǔ)儡率,無(wú)frm文件
7、自增列持久化以清,解決了服務(wù)重啟后自增值回退的問(wèn)題
8儿普、可在線(xiàn)持久化配置(set persist會(huì)生成mysqld.auto.cnf)
9、增加CREATE TABLE ... SELECT的原子性和crash safe支持玖媚,解決了MGR架構(gòu)下無(wú)法使用的問(wèn)題
10箕肃、使用新的密碼插件caching_sha2_password(替代原本的mysql_native_password)(客戶(hù)端需要升級(jí)驅(qū)動(dòng)),支持更高的密碼策略今魔,即便相同的密碼加密后的密文也是不同的
11勺像、新增角色role功能
12障贸、新增倒排索引、不可見(jiàn)索引
13吟宦、重構(gòu)SQL分析器篮洁,增強(qiáng)優(yōu)化器和CBO特性
14、支持通用表達(dá)式殃姓、窗口函數(shù)袁波,主要用于OLAP場(chǎng)景
15、默認(rèn)字符集為utf8mb4
16蜗侈、支持使用shutdown命令直接關(guān)閉服務(wù)
17篷牌、錯(cuò)誤日志增加了不同錯(cuò)誤的錯(cuò)誤編號(hào),方便查詢(xún)
18踏幻、并行復(fù)制writeset機(jī)制枷颊,提升從庫(kù)復(fù)制性能
19、支持創(chuàng)建系統(tǒng)級(jí)別或者用戶(hù)級(jí)別資源組以限制SQL對(duì)服務(wù)器資源的占用
二该面、升級(jí)8.0前的準(zhǔn)備
1夭苗、先閱讀官方What Is New In MySQL 8.0文檔,關(guān)注被廢棄的功能隔缀,避免配置文件中依然存在這些歷史配置
2题造、需要考慮回滾方案
3、通過(guò)先升級(jí)從庫(kù)的方式進(jìn)行平穩(wěn)過(guò)渡
4猾瘸、升級(jí)前需要關(guān)注是否存在關(guān)鍵詞兼容問(wèn)題以及GROUP BY語(yǔ)句兼容問(wèn)題界赔,可以使用官方的檢查工具
Bash
mysqlsh root:123456@192.168.1.101:3306 -e "util.checkForServerUpgrade();"
5、5.7版本支持直接升級(jí)8.0(5.6不支持)须妻,升級(jí)大版本前建議先把小版本升級(jí)到最新
6仔蝌、建議升級(jí)方式采用邏輯備份+導(dǎo)入的方式
三、升級(jí)MySQL 8.0步驟
1荒吏、關(guān)閉當(dāng)前MySQL
2、備份數(shù)據(jù)
3渊鞋、使用新版本二進(jìn)制包替換原版本
4绰更、更改配置文件
5、啟動(dòng)服務(wù)锡宋,不需要mysql_upgrade儡湾,MySQL 8.0支持通過(guò)配置upgrade = AUTO參數(shù)來(lái)自動(dòng)處理升級(jí)需要做的一切?