本系列基於5.7.12 版本來講述mysql的新特性,從安裝,檔案結構,sql ,優化 ,運維層面 複製,等幾個方面展開介紹5.7 的新特性和功能,同時也建議大家跟蹤官方
blog和
文件
,以盡快知悉其新的變化。
1 sql_mode的變化
官方文件上表述, 5.7 版本預設的sql_mode="only_full_group_by, strict_trans_tables, no_zero_in_date, no_zero_date, error_for_division_by_zero, no_auto_create_user, and no_engine_substitution" 。而實際上我自己的測試環境中預設新增了
strict_trans_tables 屬性。
mysql> select @@sql_mode;+-
----
----
----
----
----
----
----
----
----
----
---+
| @@sql_mode |+-
----
----
----
----
----
----
----
----
----
----
---+
| strict_trans_tables,no_engine_substitution |+-
----
----
----
----
----
----
----
----
----
----
---+
1 row in set (0.00 sec)
strict_trans_tables 意思是說要儲存的字段的長度大於字段定義的大小,直接報錯而非像5.6版本以及之前,截斷資料進行儲存,同時丟擲乙個warning。注意同乙個會話調整 sql_mode 必須退出之後在進入sql_mode才會生效。詳細了解sql_mode 請移步《
sql_mode官方文件
》 注意5.7 對於null,'00000000 00:00:00' 這類default值的影響.
2 online ddl支援 rename index name.個人感覺這個功能比較雞肋,通常改變索引名稱的時候 本身索引的結構需要增刪字段,新建的索引名稱也要修改合適的名稱。
mysql> alter table yy rename index idx_name to idx_nm;
query ok, 0 rows affected (0.01 sec)
records: 0 duplicates: 0 warnings: 0
3 新增內建的full text 外掛程式,支援中文 ,韓文,日文全文索引。
之前的版本 只能依賴單詞之間空格進行分詞,對於依賴於語義分詞而非空格分詞的其他語言種類,5.7 版本的引入支援解析中文,韓文,日文的全文索引--ngram full-text parser解決了該問題。具體請移步
《ngram full-text parser 》
參考文章
《what is new in mysql 5.7》
mysql7 1新特性 Mysql5 7新特性六
一 動態生成的列 generated columns mysql現在支援在建立和修改列的時候使用generated columns。他的值由對應的表示式計算得出。它可以有兩種儲存方式,預設值是virtual 虛擬化 virtual 的 讀取列時計算的 儲存到資料庫 stored 的,會實際占用空間 ...
mysql 5 7 使用者管理新特性
背景 當前公司線上使用的版本mysql 5.7版本不斷增加,簡單記錄下5.7使用者管理方面新特性 安全認證 mysql安全認證的改變主要涉及都mysql.user表。與5.5相比,增加password expired password last changed password lifetime a...
MySQL 5 7新特性之一
寫在前面 mysql 5.7版本於2015年10月份左右 ga,至今已經半年多了,但自己一直沒有時間來follow mysql 5.7 新的特性,作為mysql dba 實在汗顏,以後會花時間來研究5.7 版本的特性並針對部分優化功能做出壓力測試。本系列基於5.7.12 版本來講述mysql的新特性...