mysql資料庫中,最常用的兩種引擎是innodb和myisam。innodb是mysql的預設儲存引擎。
一、事務處理上方面
myisam強調的是效能,查詢的速度比innodb型別更快,但是不提供事務支援,innodb提供事務支援事務。
二、外來鍵
myisam不支援外來鍵,innodb支援外來鍵。
三、鎖
myisam只支援表級鎖,innodb支援行級鎖和表級鎖,預設是行級鎖,行鎖大幅度提高了多使用者併發操作的效能。innodb比較適合於插入和更新操作比較多的情況,而myisam則適合用於頻繁查詢的情況。另外,innodb表的行鎖也不是絕對的,如果在執行乙個sql語句時,mysql不能確定要掃瞄的範圍,innodb表同樣會鎖全表,例如:
update table set num = 1 where name like "%aaa%"
四、全文索引
myisam支援全文索引,innodb不支援全文索引。innodb從mysql5.6版本開始提供對全文索引的支援。
五、表主鍵
myisam:允許沒有主鍵的表存在;
innodb:如果沒有設定主鍵,就會自動生成乙個6位元組的主鍵(使用者不可見)。
六、表的具體行數
myisam:select count(*) from table;myisam只要簡單的讀出儲存好的行數。因為myisam內建了乙個計數器,count(*)時它直接從計數器中讀。
innodb:不儲存表的具體行數,也就是說,執行select count(*) from table時,innodb要掃瞄一遍整個表來計算有多少行。
如果表的型別是myisam,那麼是18
因為myism表會把自增主鍵的最大id記錄到資料檔案裡,重啟mysql自增主鍵的最大id也不會丟失。
如果表的型別是innodb,那麼是15
innodb表只是把自增主鍵的最大id記錄當記憶體中,所以重啟資料庫會導致最大id丟失。
MySQL 資料庫儲存引擎區別
儲存引擎 mysql中的資料用各種不同的技術 儲存在檔案 或者記憶體 中。這些技術中的每一種技術都使用不同的儲存機制 索引技巧 鎖定水平並且最終提供廣泛的不同的功能和能力。通過選擇不同的技術,你能夠獲得額外的速度或者功能,從而改善你的應用的整體功能。mysql的儲存引擎是針對表進行設定的,乙個庫的不...
Mysql資料庫儲存引擎
儲存引擎是什麼?mysql中的資料用各種不同的技術儲存在檔案 或者記憶體 中。這些技術中的每一種技術都使用不同的儲存機制 索引技巧 鎖定水平並且最終提供廣泛的不同的功能和能力。通過選擇不同的技術,你能夠獲得額外的速度或者功能,從而改善你的應用的整體功能。例如,如果你在研究大量的臨時資料,你也許需要使...
資料庫 mysql儲存引擎
mysql常用的四種引擎的介紹 1 myisam儲存引擎 不支援事務 也不支援外來鍵,優勢是訪問速度快,對事務完整性沒有要求或者以select,insert為主的應用基本上可以用這個引擎來建立表,適合寫多的情況。frm儲存當前資料表的結構,myd儲存當前表的資料,myi儲存當前資料表的索引 支援表級...