更新時間:2021-01-18 17:48:04 來源:動力節(jié)點 瀏覽2167次
MySQL作為一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在數(shù)據(jù)處理方面有其獨特的優(yōu)勢。MySQL軟件采用了雙授權(quán)政策,分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,使得MySQL占據(jù)了關(guān)系型數(shù)據(jù)庫管理系統(tǒng)軟件的半壁江山。MySQL版本也經(jīng)過數(shù)次更迭,MySQL領(lǐng)域存在著眾多的衍生版數(shù)據(jù)庫,主流的有官方Mysql,MariaDb,Percona Server。各個版本在主要功能的支持上大體相同,各自內(nèi)部具體實現(xiàn)方式會有區(qū)別。下面我們就來看看3個主流MySQL版本特性。
其實我們在MySQL的官方網(wǎng)站上,很容易查到這些資料,我們參考MySQL官方文檔手冊,主要記錄下與開發(fā)相關(guān)的特性,如果要查詢完整特性,可以查看最后記錄的官方說明文檔。我們主要講的是MySQL使用最多的3個主流版本,分別為5.6版本,5.7版本和8.0版本。
1.InnoDb 開始支持全文索引
2.InnoDb 支持設(shè)置頁面大小
3.通過innodb_page_size 指定,默認(rèn)是16KB,
4.對于工作負(fù)載和存儲設(shè)備(尤其是具有小塊大小的SSD設(shè)備)的 某些組合,較小的頁面大小可以幫助避免冗余或低效的I / O
5.InnoDB redolog總大小的限制從之前的4G擴(kuò)展至512G
6.InnoDB現(xiàn)在可以限制大量表打開的時候內(nèi)存占用過多的問題
7.InnoDB性能加強(qiáng)。如分拆kernel mutex;flush操作從主線程分離;多個perge線程;大內(nèi)存優(yōu)化等
8.InnoDB死鎖信息可以記錄到 error 日志,方便分析
9.優(yōu)化器性能提升,引入了ICP,MRR,BKA等特性,針對子查詢進(jìn)行了優(yōu)化
10.Undo Log可保存在獨立表空間中,因其是隨機(jī)IO,更適合放到SSD中。但仍然不支持空間的自動回收
11.支持Online DDL。ALTER操作不再阻塞DML
12.MySQL現(xiàn)在支持延遲復(fù)制,以便從屬服務(wù)器故意落后于主服務(wù)器至少指定的時間量。默認(rèn)延遲為0秒
1.支持組復(fù)制和InnoDB Cluster
2.支持多源復(fù)制
3.支持在線修改Buffer pool的大小
4.支持UNDO表空間的自動回收
5.查詢優(yōu)化器的增強(qiáng)與重構(gòu),提升性能
6.可查看當(dāng)前session正在執(zhí)行的SQL的執(zhí)行計劃(EXPLAIN FOR CONNECTION)
7.優(yōu)化了Performance Schema,其內(nèi)存使用減少
8.原生支持JSON類型,并引入了眾多JSON函數(shù)
9.可設(shè)置SELECT操作的超時時長(max_execution_time)
10.引入了innodb_deadlock_detect選項,在高并發(fā)場景下,可使用該選項來關(guān)閉死鎖檢測
11.GIS的增強(qiáng),包括使用Boost.Geometry替代之前的GIS算法,InnoDB開始支持空間索引
1.提高性能:官宣比5.7快2倍
2.PERFORMANCE_SCHEMA查詢性能提升,其已內(nèi)置多個索引
3.支持不可見索引(Invisible index)
4.支持降序索引
5.引入了innodb_dedicated_server選項,可基于服務(wù)器的內(nèi)存來動態(tài)設(shè)置innodb_buffer_pool_size,innodb_log_file_size和innodb_flush_method
6.支持秒加字段(Instant add column)功能
7.JSON字段的部分更新(JSON Partial Updates)
8.支持自增主鍵的持久化
9.默認(rèn)字符集由latin1修改為utf8mb4
10.默認(rèn)開啟UNDO表空間,且支持在線調(diào)整數(shù)量(innodb_undo_tablespaces)。
11.正則表達(dá)式的增強(qiáng),新增了4個相關(guān)函數(shù),REGEXP_INSTR(),REGEXP_LIKE(),REGEXP_REPLACE(),REGEXP_SUBSTR()
12.查詢優(yōu)化器在制定執(zhí)行計劃時,會考慮數(shù)據(jù)是否在Buffer Pool中。而在此之前,是假設(shè)數(shù)據(jù)都在磁盤中
13.GROUP BY語句不再隱式排序
14.增加了對于客戶端報錯信息的統(tǒng)計(performance_schema.events_errors_summary_xxx)
15.BLOB, TEXT, GEOMETRY和JSON字段允許設(shè)置默認(rèn)值
之所以重點講述這3個版本MySQL數(shù)據(jù)庫特性,是因為這3個版本是用戶數(shù)量最多,也是MySQL數(shù)據(jù)庫的性能最好的3個版本,了解這些常用版本的MySQL數(shù)據(jù)庫特性,能夠幫助我們熟練掌握MySQL數(shù)據(jù)庫。在本站的MySQL教程中,還有許多你不曾了解過的MySQL知識,快打開鏈接開始學(xué)習(xí)吧!