MySQL技術(shù)專題(X)該換換你的數(shù)據(jù)庫版本了,讓我們一同迎接8.0的到來哦N膊病(初探篇)

前提背景

MySQL關(guān)是一種關(guān)系數(shù)據(jù)庫管理系統(tǒng)媳危,所使用的 SQL 語言是用于訪問數(shù)據(jù)庫的最常用的標(biāo)準(zhǔn)化語言,其特點(diǎn)為體積小冈敛、速度快待笑、總體擁有成本低,尤其是開放源碼這一特點(diǎn)抓谴,在 Web應(yīng)用方面 MySQL 是最好的 RDBMS(Relational Database Management System:關(guān)系數(shù)據(jù)庫管理系統(tǒng))應(yīng)用軟件之一暮蹂。
本文主要講述壓縮版,因為安裝不太方便癌压,但是功能效果都是一樣的仰泻!

MySQL8的介紹說明

MySQL 8.0是全球最受歡迎的開源數(shù)據(jù)庫的一個非常令人興奮的新版本,全面改進(jìn)滩届。一些關(guān)鍵的增強(qiáng)包括:

MySQL8的特性介紹

  • SQL窗口函數(shù)集侯,公用表表達(dá)式,NOWAIT和SKIP LOCKED帜消,降序索引棠枉,分組,正則表達(dá)式泡挺,字符集辈讶,成本模型和直方圖。

  • JSON擴(kuò)展語法娄猫,新功能贱除,改進(jìn)排序和部分更新咳促。使用JSON表函數(shù),您可以使用JSON數(shù)據(jù)的SQL機(jī)制勘伺。

  • GIS地理支持跪腹。空間參考系統(tǒng)(SRS)飞醉,以及SRS感知空間數(shù)據(jù)類型冲茸,空間索引和空間功能。

  • 可靠性 DDL語句已變得原子性和崩潰安全缅帘,元數(shù)據(jù)存儲在單個事務(wù)數(shù)據(jù)字典中轴术。由InnoDB提供支持!

  • 可觀察性性能架構(gòu)钦无,信息架構(gòu)逗栽,配置變量和錯誤記錄的顯著增強(qiáng)。

  • 可管理性遠(yuǎn)程管理失暂,撤消表空間管理和新的即時DDL彼宠。

  • 安全 OpenSSL改進(jìn),新的默認(rèn)身份驗證弟塞,SQL角色凭峡,分解超級特權(quán),密碼強(qiáng)度等等决记。

  • 性能 InnoDB在讀/寫工作負(fù)載摧冀,IO綁定工作負(fù)載和高爭用“熱點(diǎn)”工作負(fù)載方面明顯更好。

  • 增加了資源組功能系宫,通過將用戶線程映射到CPU索昂,為用戶提供一個選項,以針對特定硬件上的特定工作負(fù)載進(jìn)行優(yōu)化

開發(fā)者需要了解的特性扩借!

MySQL開發(fā)人員需要新功能椒惨,而MySQL 8.0在諸如SQL,JSON往枷,正則表達(dá)式和GIS等領(lǐng)域提供了許多新的和更多需求的功能框产。開發(fā)人員也希望能夠存儲Emojis,因此UTF8MB4現(xiàn)在是8.0中的默認(rèn)字符集错洁。最后,數(shù)據(jù)類型得到了改進(jìn)戒突,在BINARY數(shù)據(jù)類型上進(jìn)行了按位操作屯碴,并且改進(jìn)了IPv6和UUID功能。

下面簡要介紹 MySQL 8 中值得關(guān)注的新特性和改進(jìn)膊存。

  1. 性能:MySQL8.0的速度要比MySQL5.7 快 2 倍导而。MySQL 8.0 在以下方面帶來了更好的性能:讀/寫工作負(fù)載忱叭、IO 密集型工作負(fù)載、以及高競爭("hot spot"熱點(diǎn)競爭問題)工作負(fù)載今艺。
image
  1. NoSQL:MySQL從5.7版本開始提供 NoSQL 存儲功能韵丑,目前在8.0版本中這部分功能也得到了更大的改進(jìn)。該項功能消除了對獨(dú)立的 NoSQL 文檔數(shù)據(jù)庫的需求虚缎,而 MySQL 文檔存儲也為 schema-less 模式的 JSON 文檔提供了多文檔事務(wù)支持和完整的ACID合規(guī)性撵彻。
image
  1. 窗口函數(shù)(Window Functions):從 MySQL 8.0 開始,新增了一個叫窗口函數(shù)的概念实牡,它可以用來實現(xiàn)若干新的查詢方式陌僵。窗口函數(shù)與 SUM()、COUNT() 這種集合函數(shù)類似创坞,但它不會將多行查詢結(jié)果合并為一行碗短,而是將結(jié)果放回多行當(dāng)中。即窗口函數(shù)不需要 GROUP BY题涨。
    • 窗口函數(shù)
      • MySQL 8.0提供了SQL窗口功能偎谁。與分組集合函數(shù)類似,窗口函數(shù)對一組行進(jìn)行一些計算纲堵,例如COUNT或SUM搭盾。但是,如果分組聚合將這組行集合到一行中婉支,則窗口函數(shù)將為結(jié)果集中的每一行執(zhí)行聚合鸯隅。
      • 窗口化的聚合函數(shù):COUNT,SUM向挖,AVG蝌以,MIN,MAX何之,BIT_OR跟畅,BIT_AND,BIT_XOR溶推,STDDEV_POP(及其同義詞STD徊件,STDDEV),STDDEV_SAMP蒜危,VAR_POP(及其同義詞VARIANCE)和VAR_SAMP虱痕。
      • 專門的窗口函數(shù)是:RANK,DENSE_RANK辐赞,PERCENT_RANK部翘,CUME_DIST,NTILE响委,ROW_NUMBER新思,F(xiàn)IRST_VALUE窖梁,LAST_VALUE,NTH_VALUE夹囚,LEAD和LAG

對窗口函數(shù)(又名分析函數(shù))的支持是一種頻繁的用戶請求

  1. 隱藏索引:在 MySQL 8.0 中纵刘,索引可以被“隱藏”和“顯示”。當(dāng)對索引進(jìn)行隱藏時荸哟,它不會被查詢優(yōu)化器所使用假哎。我們可以使用這個特性用于性能調(diào)試,例如我們先隱藏一個索引敲茄,然后觀察其對數(shù)據(jù)庫的影響位谋。如果數(shù)據(jù)庫性能有所下降,說明這個索引是有用的堰燎,然后將其“恢復(fù)顯示”即可掏父;如果數(shù)據(jù)庫性能看不出變化,說明這個索引是多余的秆剪,可以考慮刪掉赊淑。

  2. 降序索引:MySQL 8.0 為索引提供按降序方式進(jìn)行排序的支持,在這種索引中的值也會按降序的方式進(jìn)行排序仅讽。

  3. 公用表表達(dá)式(Common Table Expressions CTE):在復(fù)雜的查詢中使用嵌入式表時陶缺,使用 CTE 使得查詢語句更清晰。

    • MySQL 8.0提供[遞歸]公用表表達(dá)式(CTE)洁灵。非遞歸CTE可以解釋為“改進(jìn)的派生表”饱岸,因為它允許派生表被多次引用。遞歸CTE是一組迭代構(gòu)建的行:從最初的一組行開始徽千,一個進(jìn)程派生新的行苫费,然后將這些新的行重新輸入到進(jìn)程中,產(chǎn)生更多的行双抽,等等百框,直到該過程不再生成行。
  4. UTF-8 編碼:從 MySQL 8 開始牍汹,使用 utf8mb4 作為 MySQL 的默認(rèn)字符集铐维。

  5. JSON:MySQL 8 大幅改進(jìn)了對 JSON 的支持,添加了基于路徑查詢參數(shù)從 JSON 字段中抽取數(shù)據(jù)的 JSON_EXTRACT() 函數(shù)慎菲,以及用于將數(shù)據(jù)分別組合到 JSON 數(shù)組和對象中的 JSON_ARRAYAGG() 和 JSON_OBJECTAGG() 聚合函數(shù)嫁蛇。

  6. 可靠性:InnoDB 現(xiàn)在支持表 DDL 的原子性,也就是 InnoDB 表上的 DDL 也可以實現(xiàn)事務(wù)完整性钧嘶,要么失敗回滾棠众,要么成功提交,不至于出現(xiàn) DDL 時部分成功的問題有决,此外還支持 crash-safe 特性闸拿,元數(shù)據(jù)存儲在單個事務(wù)數(shù)據(jù)字典中。

  7. 高可用性(High Availability):InnoDB 集群為您的數(shù)據(jù)庫提供集成的原生 HA 解決方案书幕。

  8. 安全性:對 OpenSSL 的改進(jìn)新荤、新的默認(rèn)身份驗證、SQL 角色台汇、密碼強(qiáng)度苛骨、授權(quán)。

MySQL8的安裝介紹

  • 進(jìn)入官網(wǎng)后苟呐,點(diǎn)擊"Dowload"痒芝,然后頁面往下拉


    image
  • 接下來看到的頁面是這樣的,紅色框框的鏈接就是mysql社區(qū)版牵素,是免費(fèi)的mysql版本严衬,然后我們點(diǎn)擊這個框框的鏈接:


    image
  • 接下來跳轉(zhuǎn)到這個頁面,在這里笆呆,我們只要下載社區(qū)版的Server就可以了:


    image
  • 下載免安裝版(windows以外的其他系統(tǒng)除外)

image
  • 至此请琳,安裝包就下載好了!

注意赠幕,安裝的目錄應(yīng)當(dāng)放在指定位置俄精,其次,絕對路徑中避免出現(xiàn)中文榕堰,推薦首選英文為命名條件!

image

MySQL解壓和配置環(huán)境變量

  1. 找一個文件夾放入解壓后的mysql竖慧,不建議放c盤,200M左右的sql解壓后大約接近1G

  2. 把MySQL解壓后的bin文件地址加入環(huán)境變量的path逆屡,方便終端尋找MySQL命令行圾旨。

MySQL 創(chuàng)建配置

下載完后,建議解壓到一個沒有中文的路徑康二,在解壓目錄創(chuàng)建my.ini配置文件(如果沒有就自己手動建立一個即可)

image

添加相關(guān)基本配置
# 這些是基本配置信息
[client]
# 設(shè)置mysql客戶端默認(rèn)字符集
default-character-set=utf8mb4
[mysqld]
# 設(shè)置3336端口
port = 3336
# 設(shè)置mysql的安裝目錄
basedir=D:\developer\installed\mysql8\mysql-8.0.12-winx64
# 設(shè)置 mysql數(shù)據(jù)庫的數(shù)據(jù)的存放目錄
datadir=D:\developer\installed\mysql8\mysql-8.0.12-winx64\data
# 允許最大連接數(shù)
max_connections=20
# 創(chuàng)建新表時將使用的默認(rèn)存儲引擎
default-storage-engine=INNODB
# 允許連接失敗的次數(shù)碳胳。
max_connect_errors=10
# 服務(wù)端使用的字符集默認(rèn)為utf8mb4
character-set-server=utf8mb4
# 創(chuàng)建新表時將使用的默認(rèn)存儲引擎
# 使用“mysql_native_password”插件認(rèn)證
#mysql_native_password
default_authentication_plugin=mysql_native_password
#設(shè)置時區(qū)為東八區(qū),此項設(shè)置后沫勿,在連接MySQL的時候可以不用每次都手動設(shè)置時區(qū)
default-time-zone = '+8:00'
  • mysql給出的初始密碼太復(fù)雜了挨约,一般我們需要改為一個簡單的密碼方便之后登陸,在MySQL8.0.4以前产雹,執(zhí)行:SET PASSWORD=PASSWORD(’[修改的密碼]’)诫惭,即可更改密碼,但MySQL8.0.4開始蔓挖,這樣默認(rèn)是不行的夕土。因為之前,MySQL的密碼認(rèn)證插件是“mysql_native_password”,而現(xiàn)在使用的是“caching_sha2_password”怨绣。
  • 因為當(dāng)前有很多數(shù)據(jù)庫工具和鏈接包都不支持“caching_sha2_password”角溃,為了方便,暫時需要改回“mysql_native_password”認(rèn)證插件篮撑。
初始化MySQL服務(wù)

采用cmd進(jìn)入解壓后的bin目錄减细,輸入mysqld --initialize --console

  • mysql會在和bin同級目錄下產(chǎn)生data文件,即root的數(shù)據(jù)庫赢笨,并產(chǎn)生如下紅框中的隨機(jī)密碼(如果沒有密碼未蝌,可以使用mysql -uroot -p直接登陸),對應(yīng)賬號為root茧妒。在沒有更改密碼前萧吠,需要記住這個密碼,后續(xù)登錄需要用到桐筏。


    image
安裝MySQL服務(wù)
  • 還在bin 目錄下執(zhí)行命令
mysqld --install [服務(wù)名]

后面的服務(wù)名可以不寫纸型,默認(rèn)的名字為 mysql。當(dāng)然九昧,如果電腦上需要安裝多個MySQL服務(wù)绊袋,就可以用不同的名字區(qū)分了,比如 liboMySQL

  • 在mysql的bin目錄下面執(zhí)行: mysqld --install

    • 報錯信息如下:Install/Remove of the Service Denied

    • 解決辦法:打開cmd.exe程序的時候選擇“用管理員身份打開”铸鹰。

image

出現(xiàn)上述信息則標(biāo)識成功安裝

啟動MySQL服務(wù)

輸入:net start [服務(wù)名]

image
登錄MySQL服務(wù)
  • 登錄指定端口3336

命令如下癌别,這時候會提示輸入密碼,使用上面安裝時給的隨機(jī)密碼蹋笼,填入即可登錄成功展姐,進(jìn)入MySQL命令模式。

mysql -u root -p 3336
修改密碼

剛才生成的是臨時密碼剖毯,得改圾笨。

輸入ALTER USER "root"@"localhost" IDENTIFIED BY "新密碼";

卸載MySQL服務(wù)

停止服務(wù)

net stop libomysql(服務(wù)名)

卸載服務(wù)

mysqld --remove libomysql(服務(wù)名)

參考資料

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市逊谋,隨后出現(xiàn)的幾起案子擂达,更是在濱河造成了極大的恐慌,老刑警劉巖胶滋,帶你破解...
    沈念sama閱讀 216,919評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件板鬓,死亡現(xiàn)場離奇詭異,居然都是意外死亡究恤,警方通過查閱死者的電腦和手機(jī)俭令,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來部宿,“玉大人抄腔,你說我怎么就攤上這事。” “怎么了赫蛇?”我有些...
    開封第一講書人閱讀 163,316評論 0 353
  • 文/不壞的土叔 我叫張陵绵患,是天一觀的道長。 經(jīng)常有香客問我棍掐,道長藏雏,這世上最難降的妖魔是什么拷况? 我笑而不...
    開封第一講書人閱讀 58,294評論 1 292
  • 正文 為了忘掉前任作煌,我火速辦了婚禮,結(jié)果婚禮上赚瘦,老公的妹妹穿的比我還像新娘粟誓。我一直安慰自己,他們只是感情好起意,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評論 6 390
  • 文/花漫 我一把揭開白布鹰服。 她就那樣靜靜地躺著,像睡著了一般揽咕。 火紅的嫁衣襯著肌膚如雪悲酷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,245評論 1 299
  • 那天亲善,我揣著相機(jī)與錄音设易,去河邊找鬼。 笑死蛹头,一個胖子當(dāng)著我的面吹牛顿肺,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播渣蜗,決...
    沈念sama閱讀 40,120評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼屠尊,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了耕拷?” 一聲冷哼從身側(cè)響起讼昆,我...
    開封第一講書人閱讀 38,964評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎骚烧,沒想到半個月后浸赫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,376評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡止潘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評論 2 333
  • 正文 我和宋清朗相戀三年掺炭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片凭戴。...
    茶點(diǎn)故事閱讀 39,764評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡涧狮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情者冤,我是刑警寧澤肤视,帶...
    沈念sama閱讀 35,460評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站涉枫,受9級特大地震影響邢滑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜愿汰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評論 3 327
  • 文/蒙蒙 一困后、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧衬廷,春花似錦摇予、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至跌宛,卻和暖如春酗宋,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背疆拘。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評論 1 269
  • 我被黑心中介騙來泰國打工蜕猫, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人入问。 一個月前我還...
    沈念sama閱讀 47,819評論 2 370
  • 正文 我出身青樓丹锹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親芬失。 傳聞我的和親對象是個殘疾皇子楣黍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評論 2 354

推薦閱讀更多精彩內(nèi)容