久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    MySQL存儲引擎詳解

     跑不動的豬 2020-03-25

    一、MySQL常用存儲引擎及特點

    1、InnoDB存儲引擎

    從MySQL5.5版本之后,MySQL的默認內置存儲引擎已經是InnoDB了,他的主要特點有:

    (1)災難恢復性比較好;
    (2)支持事務。默認的事務隔離級別為可重復讀,通過MVCC(并發版本控制)來實現的。
    (3)使用的鎖粒度為行級鎖,可以支持更高的并發;
    (4)支持外鍵;
    (5)配合一些熱備工具可以支持在線熱備份;
    (6)在InnoDB中存在著緩沖管理,通過緩沖池,將索引和數據全部緩存起來,加快查詢的速度;
    (7)對于InnoDB類型的表,其數據的物理組織形式是聚簇表。所有的數據按照主鍵來組織。數據和索引放在一塊,都位于B+數的葉子節點上;

    2、MyISAM存儲引擎
    在5.5版本之前,MyISAM是MySQL的默認存儲引擎,該存儲引擎并發性差,不支持事務,所以使用場景比較少,主要特點為:

    (1)不支持事務;
    (2)不支持外鍵,如果強行增加外鍵,不會提示錯誤,只是外鍵不其作用;
    (3)對數據的查詢緩存只會緩存索引,不會像InnoDB一樣緩存數據,而且是利用操作系統本身的緩存;
    (4)默認的鎖粒度為表級鎖,所以并發度很差,加鎖快,鎖沖突較少,所以不太容易發生死鎖;
    (5)支持全文索引(MySQL5.6之后,InnoDB存儲引擎也對全文索引做了支持),但是MySQL的全文索引基本不會使用,對于全文索引,現在有其他成熟的解決方案,比如:ElasticSearch,Solr,Sphinx等。
    (6)數據庫所在主機如果宕機,MyISAM的數據文件容易損壞,而且難恢復;

    3、MEMORY存儲引擎
    將數據存在內存中,和市場上的Redis,memcached等思想類似,為了提高數據的訪問速度,主要特點:

    (1)支持的數據類型有限制,比如:不支持TEXT和BLOB類型,對于字符串類型的數據,只支持固定長度的行,VARCHAR會被自動存儲為CHAR類型;
    (2)支持的鎖粒度為表級鎖。所以,在訪問量比較大時,表級鎖會成為MEMORY存儲引擎的瓶頸;
    (3)由于數據是存放在內存中,所以在服務器重啟之后,所有數據都會丟失;
    (4)查詢的時候,如果有用到臨時表,而且臨時表中有BLOB,TEXT類型的字段,那么這個臨時表就會轉化為MyISAM類型的表,性能會急劇降低;

    4、ARCHIVE存儲引擎
    ARCHIVE存儲引擎適合的場景有限,由于其支持壓縮,故主要是用來做日志,流水等數據的歸檔,主要特點:

    (1)支持Zlib壓縮,數據在插入表之前,會先被壓縮;
    (2)僅支持SELECT和INSERT操作,存入的數據就只能查詢,不能做修改和刪除;
    (3)只支持自增鍵上的索引,不支持其他索引;

    5、CSV存儲引擎
    數據中轉試用,主要特點:

    (1)其數據格式為.csv格式的文本,可以直接編輯保存;
    (2)導入導出比較方便,可以將某個表中的數據直接導出為csv,試用Excel辦公軟件打開;

    二、InnoDB和MyISAM的對比

    1、由于鎖粒度的不同,InnoDB比MyISAM支持更高的并發;
    2、InnoDB為行級鎖,MyISAM為表級鎖,所以InnoDB相對于MyISAM來說,更容易發生死鎖,鎖沖突的概率更大,而且上鎖的開銷也更大,因為需要為每一行加鎖;
    3、在備份容災上,InnoDB支持在線熱備,有很成熟的在線熱備解決方案;
    4、查詢性能上,MyISAM的查詢效率高于InnoDB,因為InnoDB在查詢過程中,是需要維護數據緩存,而且查詢過程是先定位到行所在的數據塊,然后在從數據塊中定位到要查找的行;而MyISAM可以直接定位到數據所在的內存地址,可以直接找到數據;
    5、SELECT COUNT(*)語句,如果行數在千萬級別以上,MyISAM可以快速查出,而InnoDB查詢的特別慢,因為MyISAM將行數單獨存儲了,而InnoDB需要朱行去統計行數;所以如果使用InnoDB,而且需要查詢行數,則需要對行數進行特殊處理,如:離線查詢并緩存;
    6、MyISAM的表結構文件包括:.frm(表結構定義),.MYI(索引),.MYD(數據);而InnoDB的表數據文件為:.ibd和.frm(表結構定義);

    三、如何選擇合適的存儲引擎

    1、使用場景是否需要事務支持;
    2、是否需要支持高并發,InnoDB的并發度遠高于MyISAM;
    3、是否需要支持外鍵;
    4、是否需要支持在線熱備;
    5、高效緩沖數據,InnoDB對數據和索引都做了緩沖,而MyISAM只緩沖了索引;
    6、索引,不同存儲引擎的索引并不太一樣;

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 十八禁午夜福利免费网站| 国产对白老熟女正在播放| 国偷自产AV一区二区三区| 欧美人妻在线一区二区| 欧美成人一区二区三区不卡| 最爽无遮挡行房视频| 99福利一区二区视频| 中文字幕在线亚洲日韩6页| 国产av无码专区亚洲av软件| 精品国产人妻一区二区三区久久| 吃奶呻吟打开双腿做受动态图| 国产对白老熟女正在播放| 无码人妻品一区二区三区精99| 中文字幕日韩有码国产| 国内综合精品午夜久久资源| 亚洲国产欧美一区二区好看电影 | 欧洲免费一区二区三区视频| 色婷婷亚洲精品综合影院| 国产精品中文字幕日韩| 97无码免费人妻超级碰碰夜夜| 华人在线亚洲欧美精品| 亚洲国产精品久久一线不卡| 青青草无码免费一二三区| 免费无码又爽又刺激毛片| 免费播放一区二区三区| 2019国产精品青青草原| 97人人超碰国产精品最新O| 樱花草在线社区WWW韩国| 日本深夜福利在线观看| 无码国产精品一区二区免费式芒果 | 国产精品久久久久免费观看| 四虎永久精品在线视频| 国精品无码一区二区三区左线 | 国产又色又刺激高潮视频| 亚洲中文久久久精品无码| 国产成人精品无码免费看| 成人午夜大片免费看爽爽爽| 动漫av网站免费观看| 日本XXXX色视频在线观看免费| 精品卡通动漫亚洲AV第一页| 亚洲成人高清av在线|