MySQL 5.7中的更多改進,包括計算列

jopen 9年前發布 | 8K 次閱讀 MySQL

原文  http://www.infoq.com/cn/news/2015/04/MySQL-5.7


讓我們繼續上一周的內容,討論MySQL 5.7中的新特性,我們將把注意力集中于新的安全方面的特性。首先,新版本中取消了mysql_old_password這個認證插件。其實這個插件從版 本4.x開始就已經被標注為過期了,但直到5.7.5版本中才被正式移除。從5.7.6開始,你必須顯式地在mysql.user表中聲明使用 mysql_native_password方式進行認證。

新版本的MySQL開始支持密碼過期策略了。如果系統管理員需要臨時關閉某個用戶或應用程序的訪問權限,可以簡單地將其帳號鎖定即可。

和其它許多產品一樣,MySQL的發展趨勢是提供“默認的安全性”。這就意味著如果你使用“mysqld –initialize”方式安裝MySQL,安裝程序就會自動為管理員帳號創建一個隨機的密碼。該密碼記錄在錯誤日志中,并且在管理員首次登錄時必須修 改密碼。使用這種安裝選項不會生成任何匿名帳號,也不會創建測試數據庫。

使用GRANT語句自動創建用戶帳號的方式已經被標注為過期特性,同樣,使用GRANT語言修改帳號屬性,例如認證或SSL設置的方式也成為過期特性。

數據完整性

MySQL的事務型存儲引擎現在默認開啟嚴格模式。雖然仍然可以通過INSERT IGNORE或UPDATE IGNORE等語句覆蓋嚴格模式,但對于多數常見的訪問來說,這種默認配置應該能夠大大降低無記載數據損壞的發生次數。

此外,在ALTER TABLE語句中不再支持IGNORE語法了。

ERROR_FOR_DIVISION_BY_ZERO、NO_ZERO_DATE和 NO_ZERO_IN_DATE等SQL模式不再作為單獨的配置存在,它們的功能已經集成在嚴格模式中了。

性能

對于所有的存儲引擎來說,都可以對索引進行重命名,而不會產生表復制操作。

包含GROUP BY子句的語句將不會隱式地根據該子句的內容對數據進行排序了,對于那些依賴于隱式排序特性的應用程序來說,這個變更可能會造成某些問題。

特性

MySQL現在支持計算列了,這一特性被稱為“ 生成列 ”。語法本身有一點古怪的地方,因為它無法從表達式中推斷出數據類型,不過它還是支持你所期待的各種特性,例如可以選擇將計算值保存在表中,也可以選擇在讀取的時候進行計算。被保存的計算列能夠添加索引。

HANDLER 能夠允許客戶端對某張表或索引進行直接訪問,現在這一特性可以在分區表中使用了。

查看英文原文: More Enhancements for MySQL 5.7 including Computed Columns

</div>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!