您好,登錄后才能下訂單哦!
MySQL 5.6
1).支持GTID復制
2).支持無損復制
3).支持延遲復制
4).支持基于庫級別的并行復制
5).mysqlbinlog命令支持遠程備份binlog
6).對TIME, DATETIME和TIMESTAMP進行了重構,可支持小數秒。DATETIME的空間需求也從之前的8個字節減少到
5個字節
7).支持Online DDL。ALTER操作不再阻塞DML。
8).支持可傳輸表空間(transportable tablespaces)
9).支持統計信息的持久化。避免主從之間或數據庫重啟后,同一個SQL的執行計劃有差異
10).支持支持全文索引
11).支持InnoDB Memcached plugin
12).EXPLAIN可用來查看DELETE,INSERT,REPLACE,UPDATE等DML操作的執行計劃,在此之前,只支持SELECT操作
13).分區表的增強,包括最大可用分區數增加至8192,支持分區和非分區表之間的數據交換,操作時顯式指定分區
14).Redo Log總大小的限制從之前的4G擴展至512G
15).Undo Log可保存在獨立表空間中,因其是隨機IO,更適合放到SSD中。但仍然不支持空間的自動回收
16).支持在線和關閉MySQL時dump和load Buffer pool的狀態,避免數據庫重啟后需要較長的預熱時間
17).InnoDB內部的性能提升,包括拆分kernel mutex,引入獨立的刷新線程,可設置多個purge線程
18).優化器性能提升,引入了ICP,MRR,BKA等特性,針對子查詢進行了優化
MySQL5.7
1).支持組復制和InnoDB Cluster
2).支持多源復制
3)支持增強半同步(AFTER_SYNC)
4).支持基于表級別(LOGICAL_CLOCK)的并行復制
5).支持在線開啟GTID復制
6).支持在線設置復制過濾規則
7).支持在線修改Buffer pool的大小
8).支持在同一長度編碼字節內,修改VARCHAR的大小只需修改表的元數據,無需創建臨時表
9).支持可設置NUMA架構的內存分配策略(innodb_numa_interleave)
10).支持透明頁壓縮(Transparent Page Compression)
11).支持UNDO表空間的自動回收
12).支持查詢優化器的增強和重構
13).可查看當前session正在執行的SQL的執行計劃(EXPLAIN FOR CONNECTION)
14).引入了查詢改寫插件(Query Rewrite Plugin),可在服務端對查詢進行改寫
15).EXPLAIN FORMAT=JSON會顯示成本信息,這樣可直觀的比較兩種執行計劃的優劣
16).引入了虛擬列,類似于Oracle中的函數索引
17).新實例不再默認創建test數據庫及匿名用戶
18).引入ALTER USER命令,可用來修改用戶密碼,密碼的過期策略,及鎖定用戶等
19).mysql.user表中存儲密碼的字段從password修改為authentication_string
20).支持表空間加密
21).優化了Performance Schema,其內存使用減少
22).Performance Schema引入了眾多instrumentation。常用的有Memory usage instrumentation,可用來查看
MySQL的內存使用情況,Metadata Locking Instrumentation, 可用來查看MDL的持有情況,
Stage Progress instrumentation,可用來查看Online DDL的進度
23).同一觸發事件(INSERT,DELETE,UPDATE),同一觸發時間(BEFORE,AFTER),允許創建多個觸發器
在此之前,只允許創建一個觸發器
24).InnoDB原生支持分區表,在此之前,是通過ha_partition接口來實現的
25).分區表支持可傳輸表空間特性。
26).集成了SYS數據庫,簡化了MySQL的管理及異常問題的定位
27).原生支持JSON類型,并引入了眾多JSON函數
28).引入了新的邏輯備份工具mysqlpump,支持表級別的多線程備份
29).引入了新的客戶端工具mysqlsh,其支持三種語言:JavaScript, Python and SQL。兩種API:X DevAPI,
AdminAPI,其中,前者可將MySQL作為文檔型數據庫進行操作,后者用于管理InnoDB Cluster
30).mysql_install_db被mysqld --initialize代替,用來進行實例的初始化
31).原生支持systemd
32).引入了super_read_only選項
33).可設置SELECT操作的超時時長(max_execution_time)
34).可通過SHUTDOWN命令關閉MySQL實例。
35).引入了innodb_deadlock_detect選項,在高并發場景下,可使用該選項來關閉死鎖檢測
36).引入了Optimizer Hints,可在語句級別控制優化器的行為,如是否開啟ICP,MRR等,在此之前,只有Index Hints
37).GIS的增強,包括使用Boost.Geometry替代之前的GIS算法,InnoDB開始支持空間索引
MySQL8.0
1).引入了原生的,基于InnoDB的數據字典。數據字典表位于mysql庫中,對用戶不可見,同mysql庫的其它系統表一樣,
保存在數據目錄下的mysql.ibd文件中。不再置于mysql目錄下
2).重構了INFORMATION_SCHEMA,其中部分表已重構為基于數據字典的視圖,在此之前,其為臨時表
3).PERFORMANCE_SCHEMA查詢性能提升,其已內置多個索引
4).支持不可見索引(Invisible index)
5).支持降序索引
6).優化器加入了直方圖功能,對比Oracle
7).支持公用表表達式(Common table expressions)
8).支持窗口函數(Window functions)。
9).支持角色(Role)功能,對比Oracle
10).支持資源組(Resource Groups),可用來控制線程的優先級及其能使用的資源,目前,能被管理的資源只有CPU
11).引入了innodb_dedicated_server選項,可基于服務器的內存來動態設置innodb_buffer_pool_size,
innodb_log_file_size和innodb_flush_method
12).支持秒加字段(Instant add column)功能
13).JSON字段的部分更新(JSON Partial Updates)
14).支持自增主鍵的持久化
15).支持可持久化全局變量(SET PERSIST)
16).默認字符集由latin1修改為utf8mb4
17).默認開啟UNDO表空間,且支持在線調整數量(innodb_undo_tablespaces)。在MySQL 5.7中,默認不開啟,
若要開啟,只能初始化時設置
18).支持備份鎖
19).Redo Log的優化,包括允許多個用戶線程并發寫入log buffer,可動態修改innodb_log_buffer_size的大小
20).默認的認證插件由mysql_native_password更改為caching_sha2_password
21).默認的內存臨時表由MEMORY引擎更改為TempTable引擎,相比于前者,后者支持以變長方式存儲VARCHAR,
VARBINARY等變長字段。從MySQL 8.0.13開始,TempTable引擎支持BLOB字段
22).Grant不再隱式創建用戶
23).SELECT ... FOR SHARE和SELECT ... FOR UPDATE語句中引入NOWAIT和SKIP LOCKED選項,解決電商場景熱點行問題
24).正則表達式的增強,新增了4個相關函數,REGEXP_INSTR(),REGEXP_LIKE(),REGEXP_REPLACE(),
REGEXP_SUBSTR()
25).查詢優化器在制定執行計劃時,會考慮數據是否在Buffer Pool中。而在此之前,是假設數據都在磁盤中
26).ha_partition接口從代碼層移除,如果要使用分區表,只能使用InnoDB存儲引擎
27).引入了更多細粒度的權限來替代SUPER權限,現在授予SUPER權限會提示warning
28).GROUP BY語句不再隱式排序
29).information_schema中的innodb_locks和innodb_lock_waits表被移除,取而代之的是performance_schema中的
data_locks和data_lock_waits表
30).引入performance_schema.variables_info表,記錄了參數的來源及修改情況
31).增加了對于客戶端報錯信息的統計(performance_schema.events_errors_summary_xxx)
32).可統計查詢的響應時間分布(call sys.ps_statement_avg_latency_histogram())
33).支持直接修改列名(ALTER TABLE ... RENAME COLUMN old_name TO new_name)
34).用戶密碼可設置重試策略(Reuse Policy)
35).移除PASSWORD()函數。這就意味著無法通過“SET PASSWORD ... = PASSWORD('auth_string') ”命令修改用戶密碼
36).代碼層移除Query Cache模塊,故Query Cache相關的變量和操作均不再支持
37).BLOB, TEXT, GEOMETRY和JSON字段允許設置默認值
38).可通過RESTART命令重啟MySQL實例
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。