MySQL 5 7的新增功能

2021-09-25 13:16:52 字數 2513 閱讀 8554

1) 隨機 root 密碼

mysql 5.7 資料庫初始化完成後,會自動生成乙個 root@localhost 使用者,root 使用者的密碼不為空,而是隨機產生乙個密碼。

2) 自定義 test 資料庫

mysql 5.7 預設安裝完成後沒有 test 資料庫。使用者可以自行建立 test 資料庫並對其進行許可權控制。

3) 預設 ssl 加密

mysql 5.7 採用了更加簡單的 ssl 安全訪問機制,預設連線使用 ssl 的加密方式。

4) 密碼過期策略

mysql 5.7 支援使用者設定密碼過期策略,要求使用者在一定時間過後必須修改密碼。

5) 使用者鎖

mysql 5.7 為管理員提供了暫時禁用某個使用者的功能,使被鎖定的使用者無法訪問和使用資料庫。

6) 全面支援json

mysql 5.7在伺服器端提供了一組便於操作 json 的函式。儲存的方法是將 json 編碼成 blob 後再由儲存引擎進行處理。這樣,mysql 就同時擁有了關係型資料庫和非關係型資料庫的優點,並且可以提供完整的事務支援。

7) 支援兩類生成列(generated column)

生成列是通過資料庫中的其他列計算得到的一列。當為生成列建立索引時,可以便捷地加快查詢速度。mysql 5.7 支援虛擬生成列和儲存生成列。虛擬生成列僅將資料儲存在表的元資料中,作為預設的生成列型別;儲存生成列則是將資料永久儲存在磁碟上,需要更多的磁碟空間。

8) 引入系統庫(sys schema)

系統庫中包含一系列檢視、函式和儲存過程,通過多執行緒、多程序、組合事務提交和基於行的優化方式將複製功能提高 5 倍以上,使用者向外擴充其跨商品系統的工作負載時,得以大幅提公升複製的效能和效率。

全面支援json:

1. mysql資料庫從5.7.8版本開始,也提供了對json 資料型別和函式支援,其使用方式如下: 

create table t1 (jdoc json); 

insert into t1 values(『』);

2. mysql對支援json的做法是,在server層提供了一堆便於操作json的函式,至於儲存,就是簡單地將json編碼成blob,然後交由儲存引擎層進行處理,也就是說,mysql 5.7的json支援與儲存引擎有關係,myisam 儲存引擎也支援json 格式。 

mysql支援json以後,總是避免不了拿來與mongodb進行一些比較。但是,mysql對json的支援,至少有兩點能夠完勝mongodb: 

1)  可以混合儲存結構化資料和非結構化資料,同時擁有關係型資料庫和非關係型資料庫的優點 

2)  能夠提供完整的事務支援

支援兩類生成列(generated column):

1. generated column是mysql 5.7引入的新特性,所謂generated column,就是資料庫中這一列由其他列計算而得。 

例如,知道直角三角形的兩條直角邊,要求直角三角形的面積。很明顯,面積可以通過兩條直角邊計算而得,那麼,這時候就可以在資料庫中只存放直角邊,面積使用generated column,如下所示:

create table ******** (sidea double, sideb double, area double as (sidea * sideb / 2));

insert into ********(sidea, sideb) values(3, 4);

2. 在mysql 5.7中,支援兩種generated column,即virtual generated column和stored generated column,前者只將generated column儲存在資料字典中(表的元資料),並不會將這一列資料持久化到磁碟上;後者會將generated column持久化到磁碟上,而不是每次讀取的時候計算所得,並且那就是為generate column建立索引。

引入系統庫(sys schema):

1. 資料庫的主從複製,以前是單一的主從複製,現在支援多台主資料庫複製到一台從資料庫,比如資料備份。

2. 還對 explain 做了增強,對於當前正在執行查詢 explain

3. sql_mode 變為strict mode

sql要求更嚴格,version < 5.6.6 sql_mode 為空,最為寬鬆,不夠嚴謹。

5.6.6 < version < 5.7.4

no_engine_substitution

version > 5.7.9

4. mysql 5.7對子查詢進行了優化,只要derived table裡不包含如下條件就可以進行優化:

union clause

group by

distinct

aggregation

limit or offset

mysql5 7學習 mysql 5 7 學習

mysql uroot proot mysql5.7 mysql.user表沒有password欄位改 authentication string 一.建立使用者 命令 create user username host identified by password 例子 create user d...

mysql57是什麼 關於mysql57的詳細介紹

簡介 php7 mysql57 nginx19 on ubuntu 1404 本文 前段時間php公升級到了7.0版本,據說很牛叉,比如效能較5.6提公升兩倍,記憶體占用低之類的,後來又看微博上說等到7.0.1才穩定。果不其然,很快就公升級了,最近才有時間折騰一下,在這裡做個總結。環境 1核1g主機...

mysql5 7新增新使用者

新增新使用者 允許本地 ip 訪問 localhsot 127.0.0.1 create user test localhost identified by 123456 允許外網 ip 訪問 create user test identified by 123456 重新整理許可權 flush p...