什麼是儲存引擎呢?
儲存引擎說白了就是如何儲存資料、如何為儲存的資料建立索引和如何更新、查詢資料等技術的實現方法。因為在關聯式資料庫中資料的儲存是以表的形式儲存的,所以儲存引擎也可以稱為表型別(即儲存和操作此表的型別)。
在oracle 和sql server等資料庫中只有一種儲存引擎,所有資料儲存管理機制都是一樣的。而mysql資料庫提供了多種儲存引擎。使用者可以根據不同的需求為資料表選擇不同的儲存引擎,使用者也可以根據自己的需要編寫自己的儲存引擎。
mysql中有哪些儲存引擎?
1myisam:這種引擎是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支援的表型別不止上面幾種。
MySql中有哪些儲存引擎
什麼是儲存引擎呢?儲存引擎說白了就是如何儲存資料 如何為儲存的資料建立索引和如何更新 查詢資料等技術的實現方法。因為在關聯式資料庫中資料的儲存是以表的形式儲存的,所以儲存引擎也可以稱為表型別 即儲存和操作此表的型別 在oracle 和sql server等資料庫中只有一種儲存引擎,所有資料儲存管理機...
MySql中有哪些儲存引擎?
innodb 優勢 行級鎖 事務支援 資料安全問題 資料檔案龐大 啟動慢 不支援fulltext索引 如果你是個賽車手並且按一下按鈕就能夠立即更換引擎而不需要把車開到車庫裡去換,那會是怎麼感覺呢?mysql資料庫為開發人員所做的就好像是按按鈕換引擎 它讓你選擇資料庫引擎,並給你一條簡單的途徑來切換它...
mysql有哪些儲存引擎 摘抄
mysql的預設儲存引擎是innodb,是唯一乙個支援事務和支援外來鍵的儲存引擎 mysql的主要儲存引擎有 innodb,myisam,merge,memory myisam儲存引擎 不支援事務 也不支援外來鍵,優勢是訪問速度快,對事務完整性沒有 要求或者以select,insert為主的應用基本...