1. 程式人生 > >mysql的常用引擎-Innodb和MyIASM

mysql的常用引擎-Innodb和MyIASM

看某個使用的引擎,在顯示結果裡引數engine後面的就表示該表當前用的儲存引擎:

mysql> show create table 表名;

看mysql支援哪些儲存引擎:

mysql> show engines;

看mysql當前預設的儲存引擎:
 

mysql> show variables like '%storage_engine%';

在MySQL中預設的儲存引擎為innodb,如下圖所示:

簡單介紹這兩種引擎的區別:

a.Innodb引擎,Innodb引擎提供了對資料庫ACID事務的支援。並且還提供了行級鎖和外來鍵的約束。它的設計的目標就是處理大資料容量的資料庫系統

。它本身實際上是基於Mysql後臺的完整的系統。Mysql執行的時候,Innodb會在記憶體中建立緩衝池,用於緩衝資料和索引。但是,該引擎是不支援全文搜尋的。同時,啟動也比較的慢,它是不會儲存表的行數的。當進行Select count(*) from table指令的時候,需要進行掃描全表。所以當需要使用資料庫的事務時,該引擎就是首選。由於鎖的粒度小,寫操作是不會鎖定全表的。所以在併發度較高的場景下使用會提升效率的。

b.MyIASM引擎,它是MySql的預設引擎,但不提供事務的支援,也不支援行級鎖和外來鍵。因此當執行Insert插入和Update更新語句時,即執行寫操作的時候需要鎖定這個表。所以會導致效率會降低。不過和Innodb不同的是,MyIASM引擎是儲存了表的行數

,於是當進行Select count(*) from table語句時,可以直接的讀取已經儲存的值而不需要進行掃描全表。所以,如果表的讀操作遠遠多於寫操作時,並且不需要事務的支援的。可以將MyIASM作為資料庫引擎的首先。

補充2點:

c.大容量的資料集時趨向於選擇Innodb。因為它支援事務處理和故障的恢復。Innodb可以利用資料日誌來進行資料的恢復。主鍵的查詢在Innodb也是比較快的。雖然InnoDB也使用B+Tree作為索引結構,但具體實現方式卻與MyISAM截然不同。MyISAM索引檔案和資料檔案是分離的,索引檔案僅儲存資料記錄的地址。而在InnoDB中,表資料檔案本身就是按B+Tree組織的一個索引結構,這棵樹的葉結點data域儲存了完整的資料記錄。

Innodb引擎的索引的資料結構也是B+樹,只不過資料結構中儲存的都是實際的資料,這種索引有被稱為聚集索引。

d.大批量的插入語句時(這裡是INSERT語句)在MyIASM引擎中執行的比較的快,但是UPDATE語句在Innodb下執行的會比較的快,尤其是在併發量大的時候。MyISAM引擎使用B+Tree作為索引結構,葉結點的data域存放的是實際資料記錄的地址值。也就是說它的索引和實際資料是分開的,只不過使用索引指向了實際資料。這種索引的模式被稱為非聚集索引

有一點需要注意的就是:

在使用InnoDB儲存引擎時,如果沒有特別的需要,請永遠使用一個與業務無關的自增欄位作為主鍵。

具體的更加深入的關於MySQL儲存引擎的可以參考這篇部落格:

相關推薦

mysql常用引擎-InnodbMyIASM

看某個使用的引擎,在顯示結果裡引數engine後面的就表示該表當前用的儲存引擎: mysql> show create table 表名; 看mysql支援哪些儲存引擎: mysql> show engines; 看mysql當前預設的儲存引擎:   m

MYSQL儲存引擎innodbmyisam的區別

innodb:預設事務型引擎,最重要最廣泛的儲存引擎,效能非常優秀,資料庫儲存在共享表空間,可以通過配置分開。對主鍵查詢的效能高於其他型別的儲存引擎。它內部做了很多優化,從磁碟讀取資料時自動在記憶體構建hash(雜湊)索引,插入資料時自動構建插入緩衝區。它可以通過一些機制和工具支援真正的熱備份,支援

mysql 儲存引擎 innodbmyisam 區別

轉自:http://blog.sina.com.cn/s/blog_6e322ce70100xwve.html 1, 事務處理 innodb 支援事務功能,myisam 不支援。 Myisam 的執行速度更快,效能更好。 2,select ,update ,insert

mysql常用引擎InnodbMyIASM

轉自:http://www.cnblogs.com/xiaohaillong/p/6079551.html 在MySQL資料庫中,常用的引擎主要就是2個:Innodb和MyIASM。 首先: 1.簡單介紹這兩種引擎,以及該如何去選擇。2.這兩種引擎所使用的資料結構是什麼。

MySQL存儲引擎InnodbMyISAM對比總結

級別 索引 日誌 鎖定 lte mysql 恢復 ins 標準 Innodb引擎 InnoDB是一個事務型的存儲引擎,設計目標是處理大數量數據時提供高性能的服務,它在運行時會在內存中建立緩沖池,用於緩沖數據和索引。 Innodb引擎優點 1.支持事務處

MySQL 儲存引擎 MyISAM InnoDB 配置

abc ports duplicate 資源 rec 批量 top 更新 null MySQL 存儲引擎 MyISAM 和 InnoDB 配置 MyISAM 和 InnoDB 最大特點: MyISAM : ① 不支持事務 。 ② 表級鎖定形式 ,數據在更新時鎖定整個表 。

MySQL儲存引擎MyISAMInnoDB底層索引結構

目錄 PS:為了更好地理解本文內容,我強烈建議先閱讀完我的上一篇文章深入理解MySQL索引底層資料結構與演算法 一 儲存引擎作用於什麼物件 儲存引擎是作用在表上的,而不是資料庫。 二 MyISAM和InnoDB對索引和資料的

Mysql 儲存引擎MyISAMInnoDB的簡單區別

原址:https://blog.csdn.net/lamp_yang_3533/article/details/51757567  MyISAM 適合於一些需要大量查詢的應用,但其對於有大量寫操作並不是很好,MyISAM不支援事務、外來鍵和行鎖。MyISAM的每個資料表包括三個檔案,分

MySQL資料庫引擎MyISAMInnoDB的比較

MySql資料庫引擎比較多,如:MyISAM、InnoDB、MERGE、BDB、MEMORY、EXAMPLE等,但最常用的還是MyISAM和InnoDB資料庫引擎。下面我們就來說說兩種引擎之間的區別:

Mysql資料庫引擎-------> MYISAMINNODB詳解

一、資料庫引擎   資料庫引擎是用於儲存、處理和保護資料的核心服務。利用資料庫引擎可控制訪問許可權並快速處理事務,從而滿足企業內大多數需要處理大量資料的應用程式的要求。 使用資料庫引擎建立用於聯機事務處理或聯機分析處理資料的關係資料庫。這包括建立用於儲存資料的表和用於檢視

mysql資料庫引擎MyISAMInnoDB的比較使用場合

資料庫中資料管理的一種方式,MySQL支援插入式的儲存引擎,也就是說你同一資料庫中的資料表可以選擇不同儲存引擎 檢視mysql版本 mysql> select version(); +-----------+ | version() | +-----------+

mysql數據庫引擎InnoDBMyISAM

delet spa 發生 lock 查看 加鎖 地方 也會 啟動參數 一.Mysql鎖分類   表級鎖:開銷小,加鎖塊;不會出現死鎖,鎖定粒度大,發生鎖沖突的概率最高,並發度最低。 行級鎖:開銷大,加鎖慢;會出現死鎖;鎖定粒度最小,發生鎖沖突的概率最低,並發性也最高

mysql中engine=innodbengine=myisam的區別(轉)

支持 innodb 增加 nbsp com 外鍵 iam ges blog 轉自http://blog.csdn.net/lingyi_xu/article/details/5393791 innodb引擎和mysiam引擎的區別 引擎 事務

jdbc-mysql基礎 引擎Innodb是支持回滾

連接 sql語句 cti state ger cli bcf 端口 事務 禮悟:   好好學習多思考,尊師重道存感恩。葉見尋根三二一,江河湖海同一體。 虛懷若谷良心主,願行無悔給最苦。讀書鍛煉強身心,誠勸且行且珍惜。   數據、數據,命根就在

mysql常用運算符常用函數

mysql substr size 功能 log 6.4 cbac process tex 1、常用算術運算符 1.1運算符,功能,備註1.2註意事項??(1)整數(bigint)與整數運算(+,-,)結果為bigint;??(2)浮點數與浮點數運算(/),其結果小數位數為

mysql儲存引擎InnoDB插入資料的過程詳解

https://blog.csdn.net/tangkund3218/article/details/47361705 mysql是目前市面上應用非常廣泛的關係型資料庫. 當插入,更新,刪除等sql語句執行後,mysql為何總能高效,快速的執行,而且不管是斷電,mysql程序崩潰,還是一些其

mysql 儲存引擎InnoDB — 索引

mysql 儲存引擎Innodb — 索引 簡介: 索引可以包含一個或多個列的值。如果索引包含多個列,那麼列的順序也十分重要。MySQL只能高效地使用索引的最左字首列。下面會有詳細的介紹。 大家都知道

MySQL常用引擎

滿懷對mysql資料庫研究的熱情,繼續走向引擎。 引擎是啥 引擎可以理解為汽車的發動機,可以理解為人的性格,對於資料庫: 資料庫儲存引擎: 是資料庫底層軟體組織,資料庫管理系統(DBMS)使用資料引擎進行建立、查詢、更新和刪除資料。不同的儲存引擎提供不

mysql儲存引擎innodb、myisam區別

MyISAM與InnoDB的區別是什麼? 1、 儲存結構 MyISAM:每個MyISAM在磁碟上儲存成三個檔案。第一個檔案的名字以表的名字開始,副檔名指出檔案型別。.frm檔案儲存表定義。資料檔案的副檔名為.MYD (MYData)。索引檔案的副檔名是.MYI (MYIndex)。InnoDB:所有的表都

mysql常用函式----日期時間處理函式

對於每個型別擁有的值範圍以及並且指定日期何時間值的有效格式的描述見7.3.6 日期和時間型別。 這裡是一個使用日期函式的例子。下面的查詢選擇了所有記錄,其date_col的值是在最後30天以內: mysql> SELECT something FROM table