欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談一下MyISAM和InnoDB存儲引擎的區(qū)別

 更新時間:2023年04月28日 09:58:58   作者:魏天樂大帥哥  
這篇文章主要介紹了MyISAM和InnoDB存儲引擎的區(qū)別,存儲引擎是MySQL中特有的一個術語,其它數(shù)據(jù)庫中沒有,實際上存儲引擎是一個表存儲/組織數(shù)據(jù)的方式,今天就跟小編來看看MyISAM和InnoDB存儲引擎的區(qū)別,需要的朋友可以參考下

前言

MyISAM和InnoDB是使用MySQL最常用的兩種存儲引擎,在5.5版本之前默認采用MyISAM存儲引擎,從5.5開始采用InnoDB存儲引擎。

在這里插入圖片描述

存儲引擎

存儲引擎是:數(shù)據(jù)庫管理系統(tǒng)如何存儲數(shù)據(jù)、如何為存儲的數(shù)據(jù)建立索引和如何更新、查詢數(shù)據(jù)等技術的實現(xiàn)方法。

MySQL的核心就是插件式存儲引擎,支持多種存儲引擎

show engines; //查看存儲引擎

在這里插入圖片描述

在這里插入圖片描述

關于數(shù)據(jù)庫的大致架構和基礎操作,這里不過多介紹;

區(qū)別

說區(qū)別之前說一下他倆的索引底層都是BTREE+ , B+樹的數(shù)據(jù)結構維護索引和數(shù)據(jù)(m是非聚簇索引,i是聚簇索引,這點注意下)

事務

  • InnoDB支持事務,具有安全性和完整性,系統(tǒng)容災性強,且通過使用多版本并發(fā)控制MVCC來獲得高并發(fā)性; 
  • MyISAM不支持事務; 系統(tǒng)容災性弱;

外鍵

  • InnoDB支持外鍵
  • MyISAM不支持外鍵

因此把一個有外鍵的InnoDB表單轉換成MyISAM表單會失敗;

表單的存儲

通過使用不同存儲引擎建立表單查看生成的對應存儲文件,發(fā)現(xiàn)除了雙方共有的 .frm存儲表屬性外:

  • InnoDB存儲引擎表單獨存放到一個獨立的IBD文件中;(索引和數(shù)據(jù)放在了一起)–>聚簇索引–>通過主鍵索引效率高; 普通鍵進行索引可能需要回表;
  • MyISAM存儲引擎表單MYDMYI兩部分組成,其中MYD(MYData)用來存放數(shù)據(jù)文件,而MYI(MYIndex)則用來存放索引文件–>非聚簇索引–>數(shù)據(jù)存放的是指針,不需要回表,主鍵索引和普通鍵索引分開了;

數(shù)據(jù)查詢效率

  • InnoDB不支持全文索引,而 MyISAM 支持全文索引,查詢效率上 MyISAM更高;
  • InnoDB不保存表的具體行數(shù),執(zhí)行 select count(*) from table 時需要全表掃描。而 MyISAM 用一個變量保存了整個表的行數(shù),執(zhí)行上述語句時只需要讀出該變量即可,速度很快;

數(shù)據(jù)更新效率

InnoDB的內部優(yōu)化,包括**磁盤預讀(**從磁盤讀取數(shù)據(jù)時采用可預測性讀取),自適應哈希(自動在內存中創(chuàng)建hash索引以加速讀操作)等, 且能夠加速插入操作的插入緩沖區(qū)。所以比MyISAM在數(shù)據(jù)更新能力上更優(yōu);

如何選擇

  1. 看設計的業(yè)務是否需要支持事務,需要–InnoDB;不需要–MyISAM;
  2. 如果select讀操作頻繁,用MyISAM; 如果數(shù)據(jù)更新操作使用頻繁操作用InnoDB;
  3. 考慮系統(tǒng)容災能力,MyISAM更不容易恢復,InnoDB容易恢復;

既然MySQL5.5版本之后默認了InnoDB,不知道用什么那就InnoDB,跟著主流走不會錯;

到此這篇關于淺談一下MyISAM和InnoDB存儲引擎的區(qū)別的文章就介紹到這了,更多相關MyISAM和InnoDB存儲引擎內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Mysql如何查詢鎖表

    Mysql如何查詢鎖表

    這篇文章主要介紹了Mysql如何查詢鎖表問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • MySQL數(shù)據(jù)庫連接查詢?join原理

    MySQL數(shù)據(jù)庫連接查詢?join原理

    這篇文章主要介紹了MySQL數(shù)據(jù)庫連接查詢?join原理,文章首先通過將多張表連到一起查詢?導致記錄行數(shù)和字段列發(fā)生變化,利用一對一、一對多和多對多關系保證數(shù)據(jù)完整性展開主題內容,需要的小伙伴可以參考一下
    2022-06-06
  • MySQL多表查詢與7種JOINS的實現(xiàn)舉例

    MySQL多表查詢與7種JOINS的實現(xiàn)舉例

    最近學習了多表查詢,對此做一些筆記的整理,下面這篇文章主要給大家介紹了關于MySQL多表查詢與7種JOINS實現(xiàn)的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • MySQL中的insert set 和 insert values用法

    MySQL中的insert set 和 insert values用法

    這篇文章主要介紹了MySQL中的insert set 和 insert values用法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • MySQL?去除字符串中的括號以及括號里的所有內容

    MySQL?去除字符串中的括號以及括號里的所有內容

    這篇文章主要介紹了MySQL?去除字符串中的括號以及括號里的所有內容,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • MySQL中的時區(qū)設置方式

    MySQL中的時區(qū)設置方式

    這篇文章主要介紹了MySQL中的時區(qū)設置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 在MySQL字段中使用逗號分隔符的方法分享

    在MySQL字段中使用逗號分隔符的方法分享

    大多數(shù)開發(fā)者應該都遇到過在mysql字段中存儲逗號分割字符串的經歷,無論這些被分割的字段代表的是id還是tag,這個字段都應該具有如下幾個共性
    2012-06-06
  • sql模式設置引起的問題解決辦法

    sql模式設置引起的問題解決辦法

    這篇文章主要介紹了sql模式設置引起的問題解決辦法,文章圍繞主題展開詳細內容,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05
  • MySQL5.7中的JSON基本操作指南

    MySQL5.7中的JSON基本操作指南

    這篇文章主要給大家介紹了關于MySQL5.7中JSON的基本操作,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Mysql具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-03-03
  • MySQL數(shù)據(jù)庫三種常用存儲引擎特性對比

    MySQL數(shù)據(jù)庫三種常用存儲引擎特性對比

    MySQL中的數(shù)據(jù)用各種不同的技術存儲在文件(或內存)中,這些技術中的每一種技術都使用不同的存儲機制,索引技巧,鎖定水平并且最終提供廣泛的不同功能和能力。在MySQL中將這些不同的技術及配套的相關功能稱為存儲引擎。
    2016-01-01

最新評論