Mysql 簡單入門

江南雨巷發表於2020-12-25


該文章不講操作步驟,僅僅是做對mysql的認知,如有錯誤,請指出,相互探討。

事務

事務時mysql執行的最小單元。
事務四大特性:

  • 原子性
  • 一致性
  • 隔離性
  • 永續性

事務是如何保證原子性的?
這是因為一個undolog的日誌。比如說我們對一行資料進行操作,則會將其記錄在undolog裡面,只要不提交,則原表的資料則一直不變,當在undolog裡一個操作失敗,我們取消提交,則undolog裡所有的資訊清空。

搜尋引擎

MyISAM

  • B+樹為索引
  • 資料儲存到另外的地方,B+葉子結點用來儲存索引
  • 產生3個檔案
  • 表級鎖

InnoDB

  • B+樹為索引
  • 資料儲存到葉子結點
  • 產生2個檔案
  • 行級鎖

由上,可自行知道兩者的區別和一致性。而後我們來解決一些相關的常見問題。

  1. 為什麼InnoDB不適合全文索引,MyISAM適合?

答:我們來分析下:

  • 如果用InnoDB做全文索引,那麼由於其儲存特性:資料儲存到葉子結點。資料多的話,記憶體肯定放不下。那麼操作應該是:
    從磁碟載入部分資料放入記憶體。在記憶體中搜尋要查詢的資訊,如果沒有搜尋到,則然後不斷從磁碟上拿到資料放入記憶體,再載入,直到搜到需要查詢的資訊。

  • 用MyISAM。儲存特性:索引存到葉子結點,那麼可以全部放於記憶體。

故,MyISAM更適合全文索引。

  1. InnoDB支援事務,MyISAM不支援事務?
  • InnDB是行級鎖
  • MyISAM是表級鎖

主從模式

講到主從模式,有個關鍵的東西叫做binlog。
binlog是用來儲存執行記錄的。就是對資料進行過操作的都會記錄下來,除了select。因為這個並沒有對資料產生實質性的修改。所以對debug沒用。

binlog作用:

  • 恢復資料:當資料丟失,可以拿到昨天備份的資料,再根據binlog恢復資料
  • 主從模式:master資料儲存後會儲存到binlog這時候會發布同步通知到slave裡面。