標籤:
3.1 概述:
1,MYISAM 是mysql 5.5以前版本的預設引擎,5.5以後預設儲存引擎是innodb
2、查看mysql儲存引擎命令,在mysql>提示符下搞入show engines;欄位 Support為:Default表示預設儲存引擎
3、設定InnoDB為預設引擎:在設定檔my.cnf中的 [mysqld] 下面加入default-storage-engine=INNODB 一句
3.2 MYISAM儲存引擎概述:
1,MyISAM 儲存引擎的表在資料庫中,每一個表都被存放為三個以表名命名的物理檔案 .frm,.MYI,MYD三個檔案的作用第二章中以說明;注意,不管某個表有多少個索引,都是存放在MYI這個檔案中
2, MyISAM 支援以下三種類型的索引:
1、B-Tree 索引
B-Tree 索引,顧名思義,就是所有的索引節點都按照 balance tree 的資料結構來 儲存,所有的索引資料節點都在分葉節點。
2、R-Tree 索引
R-Tree 索引的儲存方式和 b-tree 索引有一些區別,主要設計用於為儲存空間和多 維資料的欄位做索引,所以目前的 MySQL 版本來說,也僅支援 geometry 類型的欄位作索引。
3、Full-text 索引
Full-text 索引就是我們長說的全文索引,他的儲存結構也是 b-tree。主要是為了 解決在我們需要用 like 查詢的低效問題。
3,MyISAM 儲存引擎的某個表檔案出錯之後,僅影響到該表,而不會影響到其他表,更不 會影響到其他的資料庫
4,如果我們正在運行過程中發現某個 MyISAM 表出現問題了, 則可以線上通過 check table 命令來嘗試校正他,並可以通過 repair table 命令來嘗試修
複。在資料庫關閉狀態下,我們也可以通過 myisamchk 工具來對資料庫中某個(或某些) 表 進行檢測或者修複。不過強烈建議不到萬不得已不要輕易對錶進行修複操作,修複之前盡量 做好可能的備份工作,以免帶來不必要的後果
3.3 Innodb 儲存引擎簡介
1、支援事務安裝
2,資料多版本讀取
3,鎖定機制的改進 -- 行級鎖
4、實現外鍵
5,Innodb 的物理結構分為兩大部分:
<1>資料檔案(表資料和索引資料):
資料表空間:一種是共用資料表空間,也就是所有表和索引資料被存放 在同一個資料表空間(一個或多個資料檔案)中,通過 innodb_data_file_path 來指定,增加數
據檔案需要停機重啟。
另外一種是獨享資料表空間,也就是每個表的資料和索引被存放在一個 單獨的.ibd 檔案中。
6,雖然我們可以自行設定使用共用資料表空間還是獨享資料表空間來存放我們的表,但是共用表空 間都是必須存在的,因為 Innodb 的 undo 資訊和其他一些中繼資料資訊都是存放在共用資料表空間 裡面的。共用資料表空間的資料檔案是可以設定為固定大小和可自動擴充大小兩種形式的,自動 擴充形式的檔案可以設定檔案的最大大小和每次展量。在建立自動擴充的資料檔案的時候,建議大家最好加上最大尺寸的屬性,一個原因是檔案系統本身是有一定大小限制的(但 是 Innodb 並不知道),還有一個原因就是自身維護的方便。另外,Innodb 不僅可以使用文 件系統,還可以使用原始塊裝置,也就是我們常說的裸裝置。 當我們的檔案資料表空間快要用完的時候,我們必須要為其增加資料檔案,當然,只有共用 表 空 間 有 此 操 作 。 共 享 表 空 間 增 加 數 據 文 件 的 操 作 比 較 簡 單 , 只 需 要 在 innodb_data_file_path 參數後面按照標準格式設定好檔案路徑和相關屬性即可,不過這裡 有一點需要注意的,就是 Innodb 在建立新資料檔案的時候是不會建立目錄的,如果指定目
錄不存在,則會報錯並無法啟動。另外一個較為令人頭疼的就是 Innodb 在給共用資料表空間增 加資料檔案之後,必須要重啟資料庫系統才會生效,如果是使用裸裝置,還需要有兩次重啟 。 這也是我一直不太喜歡使用共用資料表空間而選用獨享資料表空間的原因之一
《mysql效能調優與架構設計》筆記: 二儲存引擎