innodb:
支援事務處理等
不加鎖讀取
支援外來鍵
支援行鎖
不支援fulltext型別的索引
不儲存表的具體行數,掃瞄表來計算有多少行
delete 表時,是一行一行的刪除
innodb 把資料和索引存放在表空間裡面
跨平台可直接拷貝使用
innodb中必須包含auto_increment型別欄位的索引
**很難被壓縮
myisam:
不支援事務,回滾將造成不完全回滾,不具有原子性
不支援外來鍵
不支援外來鍵
支援全文搜尋
儲存表的具體行數,不帶where時,直接返回儲存的行數
delete 表時,先drop表,然後重建表
myisam 表被存放在三個檔案 。frm 檔案存放**定義。 資料檔案是myd (mydata) 。 索引檔案是myi (myindex)引伸
跨平台很難直接拷貝
myisam中可以使auto_increment型別字段建立聯合索引
**可以被壓縮
選擇:因為myisam相對簡單所以在效率上要優於innodb.如果系統讀多,寫少。對原子性要求低。那麼myisam最好的選擇。且myisam恢復速度快。可直接用備份覆蓋恢復。
如果系統讀少,寫多的時候,尤其是併發寫入高的時候。innodb就是首選了。
memory儲存引擎
memory儲存引擎將表中的資料儲存到記憶體中,未查詢和引用其他表資料提供快速訪問。memory主要特性有:
1、memory表的每個表可以有多達32個索引,每個索引16列,以及500位元組的最大鍵長度
2、memory儲存引擎執行hash和btree縮影
3、可以在乙個memory表中有非唯一鍵值
4、memory表使用乙個固定的記錄長度格式
5、memory不支援blob或text列
6、memory支援auto_increment列和對可包含null值的列的索引
7、memory表在所由客戶端之間共享(就像其他任何非temporary表)
8、memory表記憶體被儲存在記憶體中,記憶體是memory表和伺服器在查詢處理時的空閒中,建立的內部表共享
9、當不再需要memory表的內容時,要釋放被memory表使用的記憶體,應該執行delete from或truncate table,或者刪除整個表(使用drop table)
儲存引擎的選擇
不同的儲存引擎都有各自的特點,以適應不同的需求,如下表所示:
功 能
myisam
memory
innodb
archive
儲存限制
256tb
ram64tb
none
支援事物
nono
yesno
支援全文索引
yesno
nono
支援數索引
yesyes
yesno
支援雜湊索引
noyes
nono
支援資料快取
non/a
yesno
支援外來鍵
nono
yesno
如果要提供提交、回滾、崩潰恢復能力的事物安全(acid相容)能力,並要求實現併發控制,innodb是乙個好的選擇
如果資料表主要用來插入和查詢記錄,則myisam引擎能提供較高的處理效率
如果只是臨時存放資料,資料量不大,並且不需要較高的資料安全性,可以選擇將資料儲存在記憶體中的memory引擎,mysql中使用該引擎作為臨時表,存放查詢的中間結果
如果只有insert和select操作,可以選擇archive,archive支援高併發的插入操作,但是本身不是事務安全的。archive非常適合儲存歸檔資料,如記錄日誌資訊可以使用archive
mysql儲存引擎 mysql儲存引擎簡介
精品推薦 什麼是儲存引擎 mysql儲存引擎是資料庫如何儲存資料 怎樣建立索引以及如何查詢更新資料等技術的實現方法,資料通過使用不同的技術儲存在檔案中,使用不同的儲存機制 索引方式來提供不同的功能。在mysql這種關係型資料中心來說,資料是以表的方式來儲存的,因此,簡單點來說,儲存引擎就是儲存和操作...
mysql個儲存引擎 MySQL儲存引擎
mysql資料庫的體系架構如下圖所示 從上圖中可以看出,mysql主要分為以下幾個元件 連線池元件 管理服務和工具元件 sql介面元件 分析器元件 優化器元件 緩衝元件 外掛程式式儲存引擎 物理檔案 儲存引擎 其實就是指定表如何儲存資料,如何為儲存的資料建立索引以及如何更新 查詢資料等技術實現的方法...
mysql儲存引擎模式 mysql儲存引擎
mysql資料庫的體系架構如下圖所示 從上圖中可以看出,mysql主要分為以下幾個元件 連線池元件 管理服務和工具元件 sql介面元件 分析器元件 優化器元件 緩衝元件 外掛程式式儲存引擎 物理檔案 一 儲存引擎 儲存引擎 其實就是指定 表 如何儲存資料,如何為儲存的資料 建立索引以及 如何更新,查...