mysql8發布日期 MySQL 8 0 0 發布

2021-10-17 17:15:15 字數 1758 閱讀 3670

mysql 開發團隊於 12 日宣布 mysql 8.0.0 開發里程碑版本(dmr)發布!

可能有人會驚奇 mysql 為何從 5.x 一下跳躍到了 8.0。事實上,mysql 5.x 系列已經延續了很多年,從被 oracle 收購之前就是 5.1,而收購之後一直維持在 5.x,比如 5.5,5.6,5.7 等等。其實,如果按照原本的發布節奏,可以把 5.6.x 當成 6.x,5.7.x 當成 7.x。所以,只是換了版本命名方式而已。

不過這次發布的 mysql 8.0.0 開發版本還是有不少亮點的。

mysql 8.0.0 亮點事務性資料字典,完全脫離了 myisam 儲存引擎

真正將資料字典放到了 innodb 中的一些表中,從此不再需要 frm、trg、par 檔案啦!information schema 現在以資料字典表的乙個檢視出現。原則上可以完全不需要 myisam 資料表型別了,所有的系統表都可以放到 innodb 之中。

sql 角色

角色是一系列許可權的集合。可以建立角色,給某個使用者授予和去除角色。這對於許可權管理很方便。

utf8mb4 字符集將成為預設字符集,並支援 unicode 9

預設字符集將從 latin1 改為 utf8mb4,預設定序collation將從latin1_swedish_ci 改為 utf8mb4_800_ci_ai。

不可見索引

可以將一些索引設定為不可見,這樣 sql 優化器就不會用到它,但是它會繼續在後台保持更新。當有需要時,可以隨時恢復可見。

對二進位制資料可以進行位操作

不僅僅可以對 bigint進行位操作,從 8.0 開始也支援對 [var]binary/[tiny|medium|long]blob進行位操作了。

改進了對 ipv6 和 uuid 的操作

inet6_aton() 和 inet6_ntoa() 現在可以進行位操作了,因為inet6_aton()現在返回的是varbinary(16) 資料型別(128 位)。改進了 uuid 操作,引入了三個新的函式 uuid_to_bin(), bin_to_uuid()和 is_uuid() 。mysql 並沒有特殊的 ipv6 和 uuid 資料型別,而是以varbinary(16) 資料型別儲存的。

持續性的全域性變數

可以用 set persist 來設定永續性的全域性變數,即便伺服器重啟也會保持下來。

效能資料庫performance schema的改進

比如對效能資料庫增加了 100 多個索引,可以檢索更快。

重構 sql 分析器

持續不斷的逐步改進 sql 分析器。舊的分析器由於其語法複雜性和自頂向下的分析方式從而有嚴重的限制,導致難以維護和擴充套件。

成本模型

innodb 緩衝區現在可以估算主記憶體快取區中的有多少表和索引,這可以讓優化器選擇訪問方式時知道資料是否可以儲存在記憶體中還是必須儲存到磁碟上。

直方圖histograms

通過使用直方圖,使用者或 dba 可以對資料分布進行統計,這可以用於查詢優化以尋找優化的查詢方案。

改進掃瞄效能

改進了 innodb 範圍查詢的效能,可提公升全表查詢和範圍查詢 5-20% 的效能。

重構 blob

重構 blob 加速了片段讀取/更新操作,可以加速 json 資料的操作。

持久化自增值

innodb 會持久化保持自增序列的最大值到 redo 日誌中。這個改進還修復了乙個非常老的 199 號 bug。

臨時表取消對壓縮臨時表的支援,並儲存臨時表的元資料到記憶體中。

最新的源**放在 github 上,感興趣的朋友可以去看看,其中有不少是中國人的貢獻。

mysql8問題 mysql8中的問題

only full group by 對於group by聚合操作,如果在 select 中的列,沒有在 group by 現,那麼這個sql是不合法的,因為列不在group by從句中。no auto value on zero 該值影響自增長列的插入。預設設定下,插入0或null代表生成下乙個自...

mysql8建立不了使用者 mysql8建立使用者

假如是mysql8版本的話,使用 grant all privileges to 使用者 localhost identified by 自定義密碼 會報錯,因為要先建立使用者再進行賦權,不能同時進行 建立使用者 create user 使用者名稱 localhost identified by 密...

mysql發布日期 mysql 日期

資料型別 資料型別 格式date yyyy mm dd datetime yyyy mm dd hh mm ss timestamp yyyy mm dd hh mm ss year yyyy 或 yy 具體實現的函式 1 now 返回當前的日期和時間 select now 2 curdate 返回...