MySQL之MYISAM和INODB 分析

2021-08-21 14:23:07 字數 920 閱讀 2947

資料庫中的儲存引擎其實是對使用了該引擎的表進行某種設定,資料庫中的表設定了什麼儲存引擎,那麼該錶在資料儲存方式、資料更新方式、資料查詢效能以及是否支援索引等方面就會有不同的「效果」。在mysql資料庫中存在著多種引擎(不同版本的mysql資料庫支援的引擎不同)。

一般來說,mysql有以下幾種引擎:isam、myisam、heap(也稱為memory)、csv、blackhole、archive、performance_schema、innodb、 berkeley、merge、federated和cluster/ndb等,除此以外我們也可以參照mysql++ api建立自己的資料庫引擎。

myisam

myisam是基於傳統的isam型別,支援全文搜尋,但不是事務安全的,而且不支援外來鍵。每張myisam表存放在三個檔案中:frm 檔案存放**定義;資料檔案是myd (mydata);索引檔案是myi (myindex)。

innodb

innodb是事務型引擎,支援回滾、崩潰恢復能力、多版本併發控制、acid事務,支援行級鎖定(innodb表的行鎖不是絕對的,如果在執行乙個sql語句時mysql不能確定要掃瞄的範圍,innodb表同樣會鎖全表,如like操作時的sql語句),以及提供與oracle型別一致的不加鎖讀取方式。innodb儲存它的表和索引在乙個表空間中,表空間可以包含數個檔案。

主要區別:

應用場景:

常用命令:

(1)檢視表的儲存型別(三種):

(2)修改表的儲存引擎:

(3)啟動mysql資料庫的命令列中新增以下引數使新發布的表都預設使用事務:

(4)資料庫

show databases; –檢視資料庫

use dbnmae;使用某資料庫

show tables; 展示所有表

(5)表的列

describe tablename;獲取有關列的資訊

MySQL之innodb和myisam的區別

myisam在磁碟上儲存成三個檔案。第乙個檔案的名字以表的名字開始,副檔名指出檔案型別,frm檔案儲存表定義,資料檔案的擴充套件名為.myd,索引檔案的副檔名是.myi innodb基於磁碟的資源是innodb表空間資料檔案和它的日誌檔案,innodb 表的大小只受限於作業系統檔案的大小 ps my...

Mysql引擎 Innodb和MyISAM的區別

本文是摘抄其他網文整理而成。create database engine innodb mysql 資料庫分為innodb和myisam兩類。兩者最主要的區別是 innodb支援事務處理 外來鍵和行級鎖.而myisam不支援,所以如果cud比較頻繁或要求事務一致性的,使用innodb比較好,反之使用...

MySQL引擎 InnoDB和MyISAM的區別

mysql 是乙個支援多引擎的系統,主要有以下幾種 而在實際應用中,比較常用的就是innodb和myisam這兩種,但是大多數人都不太清楚兩者的區別,為什麼myisam會被innodb取代?這篇文章就重點討論它們的區別。crash safe簡單來說,就是即使資料庫發生異常重啟,之前提交的記錄也不會丟...