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