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