<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          吃透這款最流行的數(shù)據(jù)庫,技術(shù)生涯就穩(wěn)了

          共 2964字,需瀏覽 6分鐘

           ·

          2023-08-02 20:30

          互聯(lián)網(wǎng)企業(yè)在近20年的崛起過程中,最應(yīng)該感謝的是開源軟件提供的支撐。包括操作系統(tǒng)、數(shù)據(jù)庫、Web Server 在內(nèi)的各種開源技術(shù),以低成本的方式協(xié)助企業(yè)快速推出服務(wù),贏得商業(yè)上的成功。 互聯(lián)網(wǎng)時代最重要的資源是數(shù)據(jù),所以存儲數(shù)據(jù)的數(shù)據(jù)庫是企業(yè)最重要的基礎(chǔ)設(shè)施。有一款開源關(guān)系型數(shù)據(jù)庫是大多數(shù)企業(yè)搭建服務(wù)環(huán)境的首選,那就是MySQL。 說 MySQL 是全世界最流行的關(guān)系型數(shù)據(jù)庫一點都不夸張,因為它的市場占有率達(dá)到 43% 以上。也許你看這篇文章時產(chǎn)生的數(shù)據(jù),就在用 MySQL 管理。 MySQL 能從一眾關(guān)系型數(shù)據(jù)庫產(chǎn)品中脫穎而出,并不僅僅是因為它開源免費,還在于其高效的讀寫性能、長時間穩(wěn)定運行的能力、部署簡便靈活,以及活躍的社區(qū)支持。大量的使用與反饋也助推 MySQL 更加成熟,終有如今的地位。 數(shù)據(jù)庫不僅對企業(yè)重要,對互聯(lián)網(wǎng)行業(yè)里的技術(shù)人來說也同樣重要。 有的朋友可能會有疑問:“我不是做數(shù)據(jù)庫的,只要會寫 SQL 語句就行了,其他的難題就交給DBA(數(shù)據(jù)庫管理員)解決是不是就可以了?”

          還真是不可以,我們來說說這是為什么。

          01

          用好 MySQL 是技術(shù)人的基本盤

          在技術(shù)人的職業(yè)生涯中,除了專注于數(shù)據(jù)庫技術(shù)的 DBA,無論是做開發(fā)崗、運維崗還是測試崗,也都需要透徹了解 MySQL,因為決定系統(tǒng)服務(wù)質(zhì)量的關(guān)鍵節(jié)點就在這里。 如果程序員只會寫 SQL 語句,慢查詢影響了用戶體驗,不會優(yōu)化怎么行?對于運維來說,如果不清楚 MySQL 的底層原理,怎么實施主從同步、讀寫分離,做好數(shù)據(jù)備份和恢復(fù)呢? 所以,熟悉 MySQL 就和掌握編程語言一樣重要,是技術(shù)人的職業(yè)技能基本盤中重要的一部分。 但是不經(jīng)過系統(tǒng)化的學(xué)習(xí),技術(shù)人很可能會掉進(jìn)一個陷阱,就是對于搜索得來的結(jié)果不加分辨地去使用。可想而知,要么是別人的方案在自己的環(huán)境里不適用,要么解決一個問題又引入新的問題,疲于應(yīng)付。 不想讓 MySQL 成為職業(yè)生涯的瓶頸,那就靜下心來學(xué)透它吧。不必畏懼網(wǎng)上浩如煙海的資料,要筑牢 MySQL 的基本盤,看兩本好書就夠了。這兩本書分別是《MySQL是怎樣使用的:快速入門MySQL》《MySQL是怎樣運行的:從根兒上理解MySQL》。 前一本是小白入門,后一本是高手進(jìn)階。這兩本書不是堆砌術(shù)語的枯燥說明書,而是相當(dāng)生動有趣,有示例有代碼,有圖有真相,不信你翻開看看。 02

          打穩(wěn)底盤:學(xué)會使用 MySQL

          如果你是零基礎(chǔ)的朋友,看到這里請不要放棄,因為這一章就是專門為你準(zhǔn)備的。 MySQL 屬于關(guān)系型數(shù)據(jù)庫,那么一定要把關(guān)系型數(shù)據(jù)庫的理論學(xué)完才能上手實操嗎?完全不必,看《MySQL是怎樣使用的:快速入門MySQL》就可以??催@直白的書名就知道,它注重的就是從實踐入手,以練促學(xué) 在學(xué)習(xí)本書時,可以分為三個階段:

          安裝 MySQL 服務(wù)。書中詳細(xì)描述了在 Windows 平臺上的安裝過程,并說明如何啟動與關(guān)閉服務(wù);

          創(chuàng)建數(shù)據(jù)庫與表。書中說明了命令行工具的使用方法,學(xué)會使用MySQL客戶端程序連接數(shù)據(jù)庫服務(wù)。接下來執(zhí)行創(chuàng)建數(shù)據(jù)庫,定義表數(shù)據(jù)類型、創(chuàng)建數(shù)據(jù)表,插入一些測試數(shù)據(jù)等任務(wù);

          掌握查詢數(shù)據(jù)的方法。SQL 是通用的結(jié)構(gòu)化查詢語言,應(yīng)用系統(tǒng)通過 SQL 取得數(shù)據(jù)并呈現(xiàn)出來。書中詳細(xì)說明了分組查詢、子查詢、連接查詢、并集查詢等技術(shù),這是學(xué)習(xí)者要投入最多的時間去反復(fù)練習(xí)和熟練運用的知識。

          能將一個數(shù)據(jù)查詢請求快速編寫為一條 SQL 語言指令,使用 MySQL 的底盤就打穩(wěn)了。再進(jìn)一步,如果要優(yōu)化復(fù)雜應(yīng)用系統(tǒng)的查詢效率,解決慢查詢問題的瓶頸,那就一定要知道 MySQL 的底層知識。 讓我們繼續(xù)前進(jìn),成為 MySQL 的高手吧。 03

          成為高手:摸透底層,MySQL 進(jìn)階

          MySQL 是一款開源軟件,對于喜歡追根究底的朋友來說,一頭扎到代碼里去就是摸透底層最直接的辦法。但我不建議你這樣做,因為 MySQL 有著 2000 多萬行代碼,體量巨大,架構(gòu)十分復(fù)雜,貿(mào)然進(jìn)入只會陷在代碼的迷宮里。 要怎么摸透 MySQL 的底層呢?一個好辦法就是站在前行者的肩膀上來學(xué)習(xí)?,F(xiàn)在就可以來看《MySQL是怎樣運行的:從根兒上理解MySQL》了。我們一起在書中探索一下MySQL 的根上都是什么。 數(shù)據(jù)庫軟件最重要的核心部件是存儲引擎,MySQL 默認(rèn)使用的是 InnoDB 存儲引擎。InnoDB 被設(shè)計為處理大容量數(shù)據(jù)時可以最大化性能,也就是說在 CPU 運行周期內(nèi)盡可能多地計算數(shù)據(jù)。 InnoDB 本身的架構(gòu)和實現(xiàn)是非常復(fù)雜的,但書中沒有一上來就列舉一堆讓人眼花繚亂的概念,而是從 InnoDB 的頁結(jié)構(gòu)說起。以 COMPACT 和 REDUNDANT 行格式為例,說明一條記錄是如何被存儲的。 57ad3aecdd2279b0788a0a1ae8ce538d.webp

          記錄真實數(shù)據(jù)的兩條記錄

          清楚了數(shù)據(jù)的存儲格式,接下來最重要的議題就是 InnoDB 實現(xiàn)數(shù)據(jù)快速查詢的原理——B+樹索引。書中先對 B+樹的數(shù)據(jù)結(jié)構(gòu)與算法進(jìn)行了介紹,然后說明了 InnoDB 索引的兩種類型:聚簇索引與二級索引。 faf78d4e345dbfe5bbb690efc40a2d45.webp

          新建 B+樹

          理解了 InnoDB 的索引技術(shù)的原理,書中就對創(chuàng)建和使用索引提出了具體的建議。因為 B+ 樹索引在時間和空間上都有開銷,所以書中提出了具體的建議,包括只為用于搜索、排序或分組的列創(chuàng)建索引、索引列的類型盡量小、盡量使用覆蓋索引進(jìn)行查詢等。 有了關(guān)于數(shù)據(jù)頁結(jié)構(gòu)與 B+ 樹索引的知識,就可以深入講解查詢優(yōu)化技術(shù)了。從基于成本的優(yōu)化到基于規(guī)則的優(yōu)化,還說明了 EXPLAIN 與 optimizer trace 工具輔助分析查詢優(yōu)化的方法。掌握了這些妙招,相信做開發(fā)的朋友再也不會對如何優(yōu)化慢查詢感到無從下手了。

          本書還對 InnoDB 的 Redo、Undo、鎖等重要議題進(jìn)行了同樣細(xì)致入微的說明。把這本書啃透,無論是程序員、運維還是 DBA,以后再遇到 MySQL 相關(guān)的任何問題,都必定能一眼看穿本質(zhì),難題在談笑間就迎刃而解了。

          04

          結(jié)語

          要特別說一下《MySQL是怎樣使用的:快速入門 MySQL》和《MySQL是怎樣運行的:從根兒上理解MySQL》這兩本書的作者——“小孩子4919”,他是一位對技術(shù)抱有極大熱情的程序員。 為了寫這兩本書,他甚至辭職潛心創(chuàng)作,從書中原創(chuàng)內(nèi)容的細(xì)節(jié)可以看出來,這兩本書是傾注了大量心血才寫成的。這是一名技術(shù)人最純粹的分享,相信也會有更多技術(shù)人因為這兩本書而獲得更好的發(fā)展。 在職業(yè)生涯的發(fā)展上,技術(shù)人總有一天會走上更高的崗位,接受更難的挑戰(zhàn)。當(dāng)那一天到來時,你在設(shè)計系統(tǒng)架構(gòu)或者部署高可用集群時,就可以通過對 MySQL的透徹理解自信地完成工作。 最后,希望你也成為一名愿意積極分享的技術(shù)人。
          —END— 3ac8ca7fda6af63dbe43ab48d6c1046c.webp


          說說你對 MySQL 的看法?


          在本文末留言,可以說說你想要哪本書或者你對MySQL的認(rèn)識。留言點贊排名前三的讀者將每人獲贈一本新書,任挑一本包郵到家!截止時間8月7日十點半。

          瀏覽 29
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久久国产精品国产色婷婷 | 国产一级婬乱片AV片AAA毛片 | 哪里有免费的国产在线黄色电影 | 色色色欧美 | 日本一级婬片A片免费播放一 |