在正式開始總結mysql之前,先給大家介紹一下「破壁」是什麼意思,很久之前我老大曾說過一句「網際網路本來沒有什麼行業壁壘,但是通過製造一些專業名詞,人為的製造了很多行業壁壘出來」,我深以為然。
計算機的本質是0和1,之後通過層層封裝、抽象構建出了我們今天看到的網際網路世界。
我不否認計算機中難度很高的知識,但是就我目前接觸到的知識來說還沒有到那種程度,我想這種可以稱之為行業壁壘的核心知識佔總知識量的0.01%都不到,絕大多數人一生都不會遇到這些問題。
那麼剩下的就是這乙個乙個人為製造的、可以通過花時間掌握的「行業壁壘」。
破壁的意思就是打破這些人為製造的「行業壁壘」,讓我們技術人員人人如龍。
破壁系列的第乙個專題我選擇了網際網路的資料儲存基石 - mysql。
這個專題將會總結事務、索引、sql效能優化、分庫分表、主從複製等mysql核心內容。詳情參見下面的思維導圖:
mysql 是乙個免費、開源的關係型資料庫管理軟體,在網際網路行業被廣泛使用。
mysql中外掛程式式儲存引擎架構一直是其非常有特色的亮點,其靈活的處理方式,高度可定製化及完全開放的實現一直被很多高階使用者所肯定,下圖是官方文件中的一張架構圖:
服務層:這一層實現了很多核心功能,像查詢解析、分析、優化、快取、以及內建函式的實現等,所有跨儲存引擎的功能也都在這一層實現,像觸發器、儲存過程、檢視等。
引擎層:儲存引擎負責的是mysql中資料的儲存和提取,伺服器通過api與儲存引擎進行通訊。mysql中外掛程式式儲存引擎架構的特點,使得我們可以根據自己的實際需要進行儲存引擎的選取。
儲存層:將資料儲存在檔案系統上。
常見面試題:
mysql 的查詢流程具體是?or 一條 sql 語句在 mysql 中如何執行的?介紹一下 mysql 的架構
客戶發起請求。
在連線層進行許可權校驗、執行緒分配。
查詢快取(存在快取則直接返回,不存在則執行後續操作)
分析器(對sql進行詞法分析和語法分析操作)
優化器(主要對執行的sql優化選擇最優的執行方案方法)
執行器(執行時會先看使用者是否有執行許可權,有才去使用這個引擎提供的介面)
去引擎層獲取資料返回(如果開啟查詢快取則會快取查詢結果)
mysql中採用的是外掛程式式儲存引擎架構,可以根據需要選擇不同的儲存引擎。
現在網際網路普遍使用的都是 innodb 儲存引擎,常見的面試題是 innodb 儲存引擎和 myisam 儲存的對比,比如像下面這樣問:
innodb 和 myisam 的區別是什麼?可以從如下的角度進行回答:mysql 是現在網際網路大小廠主流使用的關係型資料庫管理軟體,平時工作中也是圍繞著它進行開發,所以幾乎是面試必考題。
這篇文章是《破壁》系列,第乙個專題的第一篇文章。
文章中首先介紹了一下我接下來要寫的內容(第乙個專題 mysql),其次是從技術原理和面試題兩個角度介紹了 mysql 架構和 mysql 儲存引擎。
概述mysql MySQL概述及入門 二
mysql概述及入門 二 mysql架構 邏輯架構圖 執行流程圖 mysql的儲存引擎 查詢資料庫支援的儲存引擎 執行 show engines 多儲存引擎是mysql有別於其他資料庫的一大特性,儲存引擎是針對表的,mysql 5.5之後,預設的儲存引擎由myisam變為innodb。innodb ...
原汁機和破壁機的區別是什麼?
在前不久,我們了解了原汁機和破壁機的區別 對於經常喝果汁的朋友而言,首先想到的是買一台榨汁機,目前市場上的榨汁機 也相對低些,可以選擇的品牌也是不少。可以榨果汁的除了榨汁機之外就是在其基礎上做出來的原汁機。比如我們經常提起的南韓惠人等品牌,也是高些。從去年開始,原汁機大有替代榨汁機之勢。對於預算比較...
生活隨筆 起死回生的九陽破壁機
夏日的一天傍晚,買了一些葡萄,就用之前的九陽破壁機打了些葡萄汁喝。為了細一點,就多打了兩遍。結果葡萄汁真的很好喝。一家三口都很愛喝。第二天早上還想再打,完了,機器上面顯示30.00 1,左下角的 五穀豆漿 和 啟動 按鈕一直閃動。按其他鍵都沒有反應。沒招了,只好作罷。東西壞了,不能一直埋怨。不能一直...