mysql儲存引擎學習

2021-07-23 05:42:32 字數 1809 閱讀 5140

文章摘抄至

那麼什麼是儲存引擎呢?

儲存引擎說白了就是如何儲存資料、如何為儲存的資料建立索引和如何更新、查詢資料等技術的實現方法。因為在關聯式資料庫中資料的儲存是以表的形式儲存的,所以儲存引擎也可以稱為表型別(即儲存和操作此表的型別)。

在oracle 和sql server等資料庫中只有一種儲存引擎,所有資料儲存管理機制都是一樣的。而mysql資料庫提供了多種儲存引擎。使用者可以根據不同的需求為資料表選擇不同的儲存引擎,使用者也可以根據自己的需要編寫自己的儲存引擎。

mysql中有哪些儲存引擎?

1 myisam:這種引擎是mysql最早提供的。這種引擎又可以分為靜態myisam、動態myisam 和壓縮myisam三種:

靜態myisam:如果資料表中的各資料列的長度都是預先固定好的,伺服器將自動選擇這種表型別。因為資料表中每一條記錄所占用的空間都是一樣的,所以這種表訪問和更新的效率非常高。當資料受損時,恢復工作也比較容易做。

動態myisam:如果資料表中出現varchar、***text或***blob欄位時,伺服器將自動選擇這種表型別。相對於靜態myisam,這種表儲存空間比較小,但由於每條記錄的長度不一,所以多次修改資料後,資料表中的資料就可能離散的儲存在記憶體中,進而導致執行效率下降。同時,記憶體中也可能會出現很多碎片。因此,這種型別的表要經常用optimize table 命令或優化工具來進行碎片整理。

壓縮myisam:以上說到的兩種型別的表都可以用myisamchk工具壓縮。這種型別的表進一步減小了占用的儲存,但是這種表壓縮之後不能再被修改。另外,因為是壓縮資料,所以這種表在讀取的時候要先時行解壓縮。

但是,不管是何種myisam表,目前它都不支援事務,行級鎖和外來鍵約束的功能。

2 myisam merge引擎:這種型別是myisam型別的一種變種。合併表是將幾個相同的myisam表合併為乙個虛表。常應用於日誌和資料倉儲。

3 innodb:innodb表型別可以看作是對myisam的進一步更新產品,它提供了事務、行級鎖機制和外來鍵約束的功能。

4 memory(heap):這種型別的資料表只存在於記憶體中。它使用雜湊索引,所以資料的訪問速度非常快。因為是存在於記憶體中,所以這種型別常應用於臨時表中。

5 archive:這種型別只支援select 和 insert語句,而且不支援索引。常應用於日誌記錄和聚合分析方面。

當然mysql支援的表型別不止上面幾種。

下面我們介紹一下如何檢視和設定資料表型別。

檢視資料庫可以支援的儲存引擎

用show engines; 命令可以顯示當前資料庫支援的儲存引擎情況,

desc[ribe] tablename; //檢視資料表的結構

show create table tablename; //顯示表的建立語句

建立資料庫表時設定儲存儲存引擎的基本語法是:

create table tablename(

columnname(列名1)  type(資料型別)  attri(屬性設定),

columnname(列名2)  type(資料型別)  attri(屬性設定),

……..) engine =enginename

修改儲存引擎,可以用命令alter table tablename engine =enginename 。

alter table user engine=archive

使用事務的命令

begin : 開始事務

rollback :事務回滾

commit :事務確認

禁止自動提交

set autocommit = 0

開啟自動提交 

set autocommit = 1

MySQL學習 儲存引擎

mysql 可以將資料以不同的技術儲存在檔案 記憶體 中,這種技術就稱作從儲存引擎。不同的儲存引擎使用不同的儲存機制,索引技巧,鎖定水平,最終提供廣泛且不同的功能。mysql支援的儲存引擎 當多個連線對記錄進行修改時需要保證資料的一致性與完整性,併發控制可以通過鎖機制實現。鎖 鎖顆粒 事務是區別於檔...

mysql 儲存引擎學習

現在我們常用的mysql儲存引擎主要是兩種 innodb and myisam。1.myisam 執行效率高 不支援事務 不支援外來鍵 每個myisam在磁碟上儲存成3個檔案,其中檔名和表名都相同,但是副檔名分別為 2.innodb 當前mysql的預設 儲存引擎 支援事務 提供具有提交 回滾和崩潰...

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

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