mysql儲存引擎靜態表 mysql儲存引擎

2021-10-18 22:13:25 字數 1320 閱讀 8388

儲存引擎是mysql資料庫最重要的特性之一,使用者可以根據自身需求選擇合適的儲存引擎,例如:是否支援事務、批量插入速度、行級鎖或者表級鎖等相關特性。mysql預設支援很多種不同的儲存引擎,使用者在建立表的時候根據表的作用可以指定不同的儲存引擎。

在mysql5.5之前預設儲存引擎都是myisam,5.5版本之後預設是innodb.

下面介紹幾種常見的儲存引擎:

1、myisam

myisam不支援事務,也不支援外來鍵,當然現在雖然外來鍵用的很少,由於不支援事務,所以訪問速度相當的快,批量插入的資料也非常快。每建立一張表會在磁碟上生成3個檔案,分別為:xx.frm(存放元資訊)、xx.myd(存放資料)、xx.myindex(存放索引),使用者可以在建立表的時候指定索引或者資料存放路徑。

myisam型別的表可能會損壞,損壞後的表不能被訪問,但是可以修復後繼續訪問。

myisam支援三種型別的表:

靜態表:預設建立都是靜態表,表中字段長度都是固定的,所以訪問速度非常快,缺點就是會占用稍微多的磁碟大小。需要注意:5.7版本以後靜態表中如果儲存字段最後面帶有空格,返回資料時不會刪除空格。

動態表:儲存字段長度不是固定的,所以占用空間小,但是頻繁的刪除或者更新資料會產生碎片,所以需要定期執行 optimize table 清理碎片。

壓縮表:壓縮表由myisampack工具建立,佔據非常小空間。因為每條記錄都是被單獨壓縮的,所以訪問開支非常小。

2、innodb

此儲存引擎是我們目前用的最多的,支援事務、行級鎖、外來鍵等等特性,插入速度相對於myisam慢一點,但無傷大雅,它的自動增長列可以手動指定,它的儲存方式為:元資訊任然保留在xx.frm檔案中,資料和索引儲存在.idb中。

不支援hash索引、全文索引和資料壓縮。

3、memory

顧名思義,memory儲存引擎是將資料存放在記憶體當中的,這種做法也只有特殊情況下會使用到,比如為了做統計而生成乙個臨時表存放資料,這樣直接從記憶體中獲取資料速度相當快。

memory儲存引擎預設使用的是hash索引,myisam和innodb使用的是btree索引。

對儲存引擎為memory的表進行操作是要謹慎,畢竟資料全部在記憶體中,所以當重啟資料庫時必須先進行備份資料。

4、merge

此儲存引擎實際上是一組myisam表的組合,這些myisam表必須結構完全相同,merge表本身沒有資料,對merge型別的表進行查詢、更新、刪除等操作實際上是對內部的myisam表進行操作。例如兩個表分別為test01和test02,表結構完全相同,他們可以組成乙個儲存引擎為merge的表test,查詢test資料時,則是兩個表資料的集合。

mysql在不斷的發展優化的過程中支援分表等特性後,此類儲存引擎用的越來越少。

MySQL表儲存引擎

常用的4種儲存引擎 myisam innodb memory和merge。myisam是mysql5.5版本之前的預設儲存引擎。myisam不支援事務 也不支援外來鍵,其優勢是訪問的速度快,對事務完整性沒有要求或者以select insert為主的應用基本上都可以使用這個引擎來建立表。資料儲存形式 ...

MYSQL 儲存引擎(表型別)

外掛程式式儲存引擎是 mysql 資料庫最重要的特性之一,使用者可以根據應用的需要選擇如 何儲存和索引資料 是否使用事務等。mysql 預設支援多種儲存引擎,以適用於不同領域 的資料庫應用需要,使用者可以通過選擇使用不同的儲存引擎提高應用的效率,提供靈活的存 儲,使用者甚至可以按照自己的需要定製和使...

mysql儲存引擎 mysql儲存引擎簡介

精品推薦 什麼是儲存引擎 mysql儲存引擎是資料庫如何儲存資料 怎樣建立索引以及如何查詢更新資料等技術的實現方法,資料通過使用不同的技術儲存在檔案中,使用不同的儲存機制 索引方式來提供不同的功能。在mysql這種關係型資料中心來說,資料是以表的方式來儲存的,因此,簡單點來說,儲存引擎就是儲存和操作...