站長資訊網
        最全最豐富的資訊網站

        看看MySQL 5.6, 5.7, 8.0的新特性!

        對于MySQL的歷史,相信很多人早已耳熟能詳,這里就不要贅述。下面僅從產品特性的角度梳理其發展過程中的里程碑事件。

        推薦:《mysql視頻教程》

        1995年,MySQL 1.0發布,僅供內部使用。

        1996年,MySQL 3.11.1發布,直接跳過了MySQL 2.x版本。

        1999年,MySQL AB公司成立。同年,發布MySQL 3.23,該版本集成了Berkeley DB存儲引擎。該引擎由Sleepycat公司開發,支持事務。在集成該引擎的過程中,對源碼進行了改造,為后續可插拔式存儲引擎架構奠定了基礎。

        2000年,ISAM升級為MyISAM存儲引擎。同年,MySQL基于GPL協議開放源碼。

        2002年,MySQL 4.0發布,集成了后來大名鼎鼎的InnoDB存儲引擎。該引擎由Innobase公司開發,支持事務,支持行級鎖,適用于OLTP等高并發場景。

        2005年,MySQL 5.0發布,開始支持游標,存儲過程,觸發器,視圖,XA事務等特性。同年,Oracle收購Innobase公司。

        2008年,Sun以10億美金收購MySQL AB。同年,發布MySQL 5.1,其開始支持定時器(Event scheduler),分區,基于行的復制等特性。

        2009年,Oracle以74億美金收購Sun公司。

        2010年,MySQL 5.5發布,其包括如下重要特性及更新。

        ● InnoDB代替MyISAM成為MySQL默認的存儲引擎。

        ● 多核擴展,能更充分地使用多核CPU。

        ● InnoDB的性能提升,包括支持索引的快速創建,表壓縮,I/O子系統的性能提升,PURGE操作從主線程中剝離出來,Buffer Pool可拆分為多個Instances。

        ● 半同步復制。

        ● 引入utf8mb4字符集,可用來存儲emoji表情。

        ● 引入metadata locks(元數據鎖)。

        ● 分區表的增強,新增兩個分區類型:RANGE COLUMNS和LIST COLUMNS。

        ● MySQL企業版引入線程池。

        ● 可配置IO讀寫線程的數量(innodb_read_io_threads,innodb_write_io_threads)。在此之前,其數量為1,且不可配置。

        ● 引入innodb_io_capacity選項,用于控制臟頁刷新的數量。

        2013年,MySQL 5.6發布,其包括如下重要特性及更新。

        ● GTID復制。

        ● 無損復制。

        ● 延遲復制。

        ● 基于庫級別的并行復制。

        ● mysqlbinlog可遠程備份binlog。

        ● 對TIME, DATETIME和TIMESTAMP進行了重構,可支持小數秒。DATETIME的空間需求也從之前的8個字節減少到5個字節。

        ● Online DDL。ALTER操作不再阻塞DML。

        ● 可傳輸表空間(transportable tablespaces)。

        ● 統計信息的持久化。避免主從之間或數據庫重啟后,同一個SQL的執行計劃有差異。

        ● 全文索引。

        ● InnoDB Memcached plugin。

        ● EXPLAIN可用來查看DELETE,INSERT,REPLACE,UPDATE等DML操作的執行計劃,在此之前,只支持SELECT操作。

        ● 分區表的增強,包括最大可用分區數增加至8192,支持分區和非分區表之間的數據交換,操作時顯式指定分區。

        ● Redo Log總大小的限制從之前的4G擴展至512G。

        ● Undo Log可保存在獨立表空間中,因其是隨機IO,更適合放到SSD中。但仍然不支持空間的自動回收。

        ● 可dump和load Buffer pool的狀態,避免數據庫重啟后需要較長的預熱時間。

        ● InnoDB內部的性能提升,包括拆分kernel mutex,引入獨立的刷新線程,可設置多個purge線程。

        ● 優化器性能提升,引入了ICP,MRR,BKA等特性,針對子查詢進行了優化。

        可以說,MySQL 5.6是MySQL歷史上一個里程碑式的版本,這也是目前生產上應用得最廣泛的版本。

        2015年,MySQL 5.7發布,其包括如下重要特性及更新。

        ● 組復制

        ● InnoDB Cluster

        ● 多源復制

        ● 增強半同步(AFTER_SYNC)

        ● 基于WRITESET的并行復制。

        ● 在線開啟GTID復制。

        ● 在線設置復制過濾規則。

        ● 在線修改Buffer pool的大小。

        ● 在同一長度編碼字節內,修改VARCHAR的大小只需修改表的元數據,無需創建臨時表。

        ● 可設置NUMA架構的內存分配策略(innodb_numa_interleave)。

        ● 透明頁壓縮(Transparent Page Compression)。

        ● UNDO表空間的自動回收。

        ● 查詢優化器的重構和增強。

        ● 可查看當前正在執行的SQL的執行計劃(EXPLAIN FOR CONNECTION)。

        ● 引入了查詢改寫插件(Query Rewrite Plugin),可在服務端對查詢進行改寫。

        ● EXPLAIN FORMAT=JSON會顯示成本信息,這樣可直觀的比較兩種執行計劃的優劣。

        ● 引入了虛擬列,類似于Oracle中的函數索引。

        ● 新實例不再默認創建test數據庫及匿名用戶。

        ● 引入ALTER USER命令,可用來修改用戶密碼,密碼的過期策略,及鎖定用戶等。

        ● mysql.user表中存儲密碼的字段從password修改為authentication_string。

        ● 表空間加密。

        ● 優化了Performance Schema,其內存使用減少。

        ● Performance Schema引入了眾多instrumentation。常用的有Memory usage instrumentation,可用來查看MySQL的內存使用情況,Metadata Locking Instrumentation,可用來查看MDL的持有情況,Stage Progress instrumentation,可用來查看Online DDL的進度。

        ● 同一觸發事件(INSERT,DELETE,UPDATE),同一觸發時間(BEFORE,AFTER),允許創建多個觸發器。在此之前,只允許創建一個觸發器。

        ● InnoDB原生支持分區表,在此之前,是通過ha_partition接口來實現的。

        ● 分區表支持可傳輸表空間特性。

        ● 集成了SYS數據庫,簡化了MySQL的管理及異常問題的定位。

        ● 原生支持JSON類型,并引入了眾多JSON函數。

        ● 引入了新的邏輯備份工具-mysqlpump,支持表級別的多線程備份。

        ● 引入了新的客戶端工具-mysqlsh,其支持三種語言:JavaScript, Python and SQL。兩種API:X DevAPI,AdminAPI,其中,前者可將MySQL作為文檔型數據庫進行操作,后者用于管理InnoDB Cluster。

        ● mysql_install_db被mysqld –initialize代替,用來進行實例的初始化。

        ● 原生支持systemd。

        ● 引入了super_read_only選項。

        ● 可設置SELECT操作的超時時長(max_execution_time)。

        ● 可通過SHUTDOWN命令關閉MySQL實例。

        ● 引入了innodb_deadlock_detect選項,在高并發場景下,可使用該選項來關閉死鎖檢測。

        ● 引入了Optimizer Hints,可在語句級別控制優化器的行為,如是否開啟ICP,MRR等,在此之前,只有Index Hints。

        ● GIS的增強,包括使用Boost.Geometry替代之前的GIS算法,InnoDB開始支持空間索引。

        2018年,MySQL 8.0發布,其包括如下重要特性及更新。

        ● 引入了原生的,基于InnoDB的數據字典。數據字典表位于mysql庫中,對用戶不可見,同mysql庫的其它系統表一樣,保存在數據目錄下的mysql.ibd文件中。不再置于mysql目錄下。

        ● Atomic DDL。

        ● 重構了INFORMATION_SCHEMA,其中,部分表已重構為基于數據字典的視圖,在此之前,其為臨時表。

        ● PERFORMANCE_SCHEMA查詢性能提升,其已內置多個索引。

        ● 不可見索引(Invisible index)。

        ● 降序索引。

        ● 直方圖。

        ● 公用表表達式(Common table expressions)。

        ● 窗口函數(Window functions)。

        ● 角色(Role)。

        ● 資源組(Resource Groups),可用來控制線程的優先級及其能使用的資源,目前,能被管理的資源只有CPU。

        ● 引入了innodb_dedicated_server選項,可基于服務器的內存來動態設置innodb_buffer_pool_size,innodb_log_file_size和innodb_flush_method。

        ● 快速加列(ALGORITHM=INSTANT)。

        ● JSON字段的部分更新(JSON Partial Updates)。

        ● 自增主鍵的持久化。

        ● 可持久化全局變量(SET PERSIST)。

        ● 默認字符集由latin1修改為utf8mb4。

        ● 默認開啟UNDO表空間,且支持在線調整數量(innodb_undo_tablespaces)。在MySQL 5.7中,默認不開啟,若要開啟,只能初始化時設置。

        ● 備份鎖。

        ● Redo Log的優化,包括允許多個用戶線程并發寫入log buffer,可動態修改innodb_log_buffer_size的大小。

        ● 默認的認證插件由mysql_native_password更改為caching_sha2_password。

        ● 默認的內存臨時表由MEMORY引擎更改為TempTable引擎,相比于前者,后者支持以變長方式存儲VARCHAR,VARBINARY等變長字段。從MySQL 8.0.13開始,TempTable引擎支持BLOB字段。

        ● Grant不再隱式創建用戶。

        ● SELECT … FOR SHARE和SELECT … FOR UPDATE語句中引入NOWAIT和SKIP LOCKED選項,解決電商場景熱點行問題。

        ● 正則表達式的增強,新增了4個相關函數,REGEXP_INSTR(),REGEXP_LIKE(),REGEXP_REPLACE(),REGEXP_SUBSTR()。

        ● 查詢優化器在制定執行計劃時,會考慮數據是否在Buffer Pool中。而在此之前,是假設數據都在磁盤中。

        ● ha_partition接口從代碼層移除,如果要使用分區表,只能使用InnoDB存儲引擎。

        ● 引入了

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 2024最新国产精品一区| 精品人妻少妇一区二区三区| 国产精品美女久久久久AV福利| 色婷婷在线精品国自产拍| 国产精品99久久久久久宅男| 2022年国产精品久久久久| 亚洲精品无码久久久久去q| 国产亚洲精品资在线| 久久九九青青国产精品| 久久青青草原精品国产| 亚洲精品成人片在线观看| 久久国产精品免费| 国产内地精品毛片视频| 桃花岛精品亚洲国产成人| 99久久精品费精品国产一区二区| 亚洲av永久无码精品古装片| 久久精品国产亚洲精品| 国产精品午夜国产小视频| 91久久福利国产成人精品| 九九热在线视频观看这里只有精品| 精品国产乱码久久久久久1区2区| 亚洲国产精品无码中文字| 亚洲精品视频免费| 日韩福利视频精品专区| 久久精品国产只有精品66| 精品国产AⅤ一区二区三区4区 | 亚洲精品V欧洲精品V日韩精品| 毛片a精品**国产| 国产综合免费精品久久久| 国产精品第六页| 国产精品成人无码久久久久久 | 中文字幕久久精品无码| 亚洲精品无码久久久久AV麻豆| 无码精品前田一区二区 | 无码精品人妻一区| 亚洲精品国产高清不卡在线| 亚洲国产av无码精品| 亚洲精品乱码久久久久久| 漂亮人妻被黑人久久精品| 国产精品视频一区二区三区无码| 99精品一区二区三区无码吞精|