自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MySQL 8.0來了,看看有哪些真香特性

數(shù)據(jù)庫 MySQL
MySQL被Sun收購后,搞了個過渡的6.0版本,沒多久就下線了(有一次居然聽說有人在線上用6.0版本,我驚得下巴都掉了)。被Oracle收購后,終于迎來了像樣的5.6版本,之后就是5.7、8.0版本。這么看來,Sun的衰亡不無道理。

MySQL被Sun收購后,搞了個過渡的6.0版本,沒多久就下線了(有一次居然聽說有人在線上用6.0版本,我驚得下巴都掉了)。被Oracle收購后,終于迎來了像樣的5.6版本,之后就是5.7、8.0版本。這么看來,Sun的衰亡不無道理。

P.S,上面說了6.0版本號已被用過,7.x系列版本專用于NDB Cluster,因而新版本號從8.0開始。

剛被Oracle收購時,大家恐慌的不行,貌似還甚至搞了個聯(lián)合簽名請愿活動來著,可惜真的是應(yīng)了那句話“天下大勢,浩浩湯湯,順之者昌,逆之者亡”。

創(chuàng)始人Monty又折騰了MariaDB,可惜也是不溫不火的。MySQL 8.0發(fā)布后,MariaDB宣布不打算繼續(xù)合并InnoDB引擎,這下就更尷尬了,以后還能愉快的玩耍了嗎?這兩年Monty老先生還時不時來中國露個臉,但似乎有那么一丟丟變味了。

閑話少說,一起來看看8.0都有哪些真香特性吧。

1. 為什么是8.0

作為迄今為止,地表最強(qiáng)的MySQL版本,8.0被寄予厚望。

雖然在很多人眼里,MySQL 8.0無非是有個"好爹",很多新特性是照著Oracle"抄"的。但在我看來,Oracle作為先驅(qū)前輩,已經(jīng)證明了這些技術(shù)的優(yōu)秀之處,有什么理由不借鑒呢,難道非要折騰出一些只為了能自嗨的莫名其妙的特性才叫牛逼,比如只能用觸發(fā)器變相實現(xiàn)的表分區(qū)功能的某DB?

再說了,即便有個”好爹“,就一定能做好嗎,國民老公不也被限制消費(fèi)了?

MySQL 8.0無論在功能還是性能(整體上),都是目前最好的MySQL版本。以往因為某些特性不支持,導(dǎo)致需要在業(yè)務(wù)代碼、邏輯上做一些妥協(xié),甚至增加使用第三方解決方案(例如NOSQL)。

我相信從8.0開始,以后這種情況會越來越少的,MySQL會越來越好,絕大多數(shù)和數(shù)據(jù)庫相關(guān)的業(yè)務(wù)需求,都能在MySQL中完成。當(dāng)然了,我也相信它不會為了嘩眾取寵,堆砌一些無謂的功能,變成另一個“最好用”的數(shù)據(jù)庫。

2. MySQL 8.0哪里香

截止本文發(fā)稿,MySQL最新版本是8.0.19。下面是站在我個人角度上,認(rèn)為最香的幾個特性。

2.1 性能優(yōu)化相關(guān)

無疑是hash join。相信DBA們被弱雞開發(fā)坑怕了,有了hash join再也不那么怕沒索引的多表join了。還有一個,anti join。hash join剛出來時,我做了個簡單的測試,當(dāng)時也發(fā)了過朋友圈:

 

MySQL 8.0來了,大勢所趨,逆之者亡

 

MySQL 8.0來了,大勢所趨,逆之者亡

 

MySQL 8.0來了,大勢所趨,逆之者亡
  1. 快速加新列。做過游戲DBA的我簡直熱淚盈眶,想想以前早起做變更的苦逼歲月(╥╯^╰╥)
  2. 直方圖。沒有索引,不想建索引,索引不準(zhǔn)確?不怕,還有直方圖兜底。
  3. 函數(shù)索引、表達(dá)式索引,開發(fā)者們該愛死這兩個功能了吧。
  4. 消除了全局的buffer pool mutex。話說這個特性Percona好像在5.5版本就有了,官方團(tuán)隊在這塊的動作慢的有點厲害啊。
  5. 倒序索引。任你正序排,倒序排,還是混合順序排,啥姿勢都能滿足,em...
  6. 不可見索引。刪個索引,想刪又不太敢動手,怎么破?不可見索引來救命。改為不可見后,觀察一陣子,確認(rèn)沒影響了再放心刪除吧。
  7. 引入WRITESET模式,大大提高并行復(fù)制效率,主從復(fù)制延遲進(jìn)一步縮小。
  8. 針對JSON數(shù)據(jù)類型,增加Multi-valued indexes,更方便JSON的搜索了。
  9. HINT語法增強(qiáng),更方便在執(zhí)行查詢時動態(tài)設(shè)定選項,針對不同SQL采用不同策略。
  10. 有個新的TempTable引擎,比原來的tmptable強(qiáng)不少。
  11. 其他優(yōu)化。

2.2 管理、復(fù)制、安全方面的功能提升

  1. 正式推出Group Relication。很好,在穩(wěn)步朝著高性能、高可用方向推進(jìn),先實現(xiàn)讀可擴(kuò)展,再實現(xiàn)寫可擴(kuò)展。期待不遠(yuǎn)的將來再實現(xiàn)分布式Sharding,到那時候,現(xiàn)在市面上那些吹得不可一世的NEWSQL們該啞火了,這兩年有點憋屈的說。
  2. Clone Plugin以及ReplicaSet特性,配合MySQL Shell,想要部署一個新的slave實例,或者是InnoDB Cluster節(jié)點,就方便很多了。
  3. sqlrequireprimary_key選項設(shè)定強(qiáng)制要求每個表都得有個主鍵。在主從環(huán)境中,相信太多人吃過沒主鍵的虧了。當(dāng)然了,我并沒有,嘿。
  4. 實例重啟后的自增ID持久化,小增強(qiáng)卻解決了業(yè)務(wù)上的邏輯大麻煩。
  5. extra admin port,管理員可以給自己開后門了。
  6. 在線修改完配置參數(shù)后,SET PERSIST語法實現(xiàn)持久化,不用再手工修改一次my.cnf了。
  7. 鎖增強(qiáng),增加SKIP LOCK、NOWAIT LOCK鎖模式,以及BACKUP LOCk。
  8. 窗口函數(shù)、CTE。做統(tǒng)計分析同學(xué)的福音。
  9. 其他提升。

更多的特性,可以訪問下面幾個資料查看。

  • MySQL 8.0新特性
  • MySQL 8.0相對于5.7的復(fù)制改進(jìn)
  • 從MySQL5.5到MySQL8.0子查詢進(jìn)化之路

3. 看完了還不想上車?

細(xì)心的讀者,或許能發(fā)現(xiàn)在官方文檔第一章"Chapter 1 General Information"里頭,有這么一段話:

  • Support for setting user variables in statements other than
  • SET was deprecated in MySQL 8.0.13. This functionality is
  • subject to removal in MySQL 9.0.

嗯,你沒看錯,是的,下一個就是9.0版本,按照經(jīng)驗,2020年也應(yīng)該要發(fā)布了。

再吼一下,MySQL 8.0來了,高鐵般的速度,再不上車您就直接用9.0吧。

責(zé)任編輯:未麗燕 來源: 今日頭條
相關(guān)推薦

2020-05-28 13:10:27

PHP開發(fā)編程

2023-07-26 19:22:04

WiFi 7WiFi 6

2017-09-12 16:28:31

MySQLMySQL 8.0.3變化

2020-10-14 15:00:38

Python 開發(fā)編程語言

2020-10-26 11:00:10

Linux5.10代碼內(nèi)核

2022-05-26 12:43:33

canal中間件

2023-06-28 08:52:36

2021-02-20 07:08:44

安卓系統(tǒng)應(yīng)用安卓12

2018-09-19 16:15:18

MySQL直方圖數(shù)據(jù)庫

2021-06-21 09:04:36

Windows 11系統(tǒng)設(shè)計

2023-10-18 10:10:29

Node.js 21前端

2009-10-15 08:52:42

Windows 7銷售市場

2022-12-05 11:44:49

PrintDebugIceCream

2023-03-16 19:17:57

2018-08-24 06:13:18

IPv6SDNIPv4

2024-04-03 08:47:58

React服務(wù)端組件Actions

2018-03-21 17:50:23

JavaJava 10JIT編譯器

2024-01-31 12:13:22

2021-04-19 11:45:31

Pythonswitch編程語言

2021-04-16 15:02:38

Python 開發(fā)編程語言
點贊
收藏

51CTO技術(shù)棧公眾號