在 MySQL 5.5 發(fā)布兩年后,Oracle 宣布 MySQL 5.6 正式版發(fā)布,首個(gè)正式版版本號(hào)為 5.6.10。在 MySQL 5.5 中使用的是 InnoDB 作為默認(rèn)的存儲(chǔ)引擎,而 5.6 則對(duì) InnoDB 引擎進(jìn)行了改造,提供全文搜索能力,使 InnoDB 適合各種應(yīng)用場(chǎng)景。
此外,子查詢的性能提升也是 MySQL 5.6 的主要任務(wù)之一,5.6 中使用一種半連接(semi-joins) 和物化處理來(lái)提升子查詢的執(zhí)行速度,這意味著你不需要手工將包含子查詢的 SQL 語(yǔ)句用 join 操作來(lái)替代。此外,多數(shù)修改數(shù)據(jù)結(jié)構(gòu)的操作 (如 ALTER TABLE) 可在線執(zhí)行,避免了數(shù)據(jù)庫(kù)長(zhǎng)時(shí)間的掛起。EXPLAIN 語(yǔ)句支持 UPDATE/DELETE/INSERT 語(yǔ)句的執(zhí)行計(jì)劃信息。其他關(guān)于查詢的優(yōu)化還包括消除在使用很小的 LIMIT 值時(shí)的表掃描。
在復(fù)制方面,MySQL 面向行的復(fù)制支持新的 "row image control" ,只記錄修改的列而不是行中所有的列,這對(duì)一些包含 BLOGs 字段的數(shù)據(jù)來(lái)說(shuō)可以節(jié)省很大的處理能力,因此此項(xiàng)改進(jìn)不僅節(jié)省了磁盤(pán)空間,同時(shí)也提升了性能。另外, "Index Condition Pushdown" 是一項(xiàng)新的優(yōu)化措施使得查詢嘗試優(yōu)先使用索引的字段,然后再是 WHERE 條件。
MySQL 5.6 同時(shí)引入了 NoSQL 接口,提供了兼容 memcached 的 API,該特性讓?xiě)?yīng)用可直接訪問(wèn) InnoDB 存儲(chǔ)引擎。底層上保持著跟關(guān)系數(shù)據(jù)庫(kù)引擎在維護(hù)上的統(tǒng)一。同時(shí)底層的 InnoDB 引擎也增強(qiáng)在持久化優(yōu)化統(tǒng)計(jì)、多線程消除以及提供更多的系統(tǒng)表和監(jiān)控?cái)?shù)據(jù)。
MySQL 的產(chǎn)品經(jīng)理 Tomas Ulin 解釋了開(kāi)源社區(qū)對(duì) Oracle 關(guān)于補(bǔ)丁政策的批評(píng),他說(shuō):這是一個(gè)不斷求證的過(guò)程,我們每三個(gè)月提供安全補(bǔ)丁,但其實(shí)大多數(shù)用戶并不會(huì)這么頻繁的更新。而使用社區(qū)版的用戶抱怨 Oracle 沒(méi)有提供發(fā)行說(shuō)明中 CVE 號(hào)的詳細(xì)說(shuō)明,它們只是簡(jiǎn)單的指向 Oracle 內(nèi)部的錯(cuò)誤碼。公司將不會(huì)發(fā)布這些詳情信息。
更多關(guān)于 MySQL 5.6 的改進(jìn)請(qǐng)看 release notes.
Oracle MySQL 5.6.10 可通過(guò)這里 下載
同時(shí)發(fā)布的還有 MySQL Installer 5.5.30 GA 和 MySQL WorkBench 5.2.26 GA