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

淺談選擇mysql存儲引擎的標準

 更新時間:2021年09月16日 10:58:52   作者:五大三粗  
本文介紹了如何選擇mysql存儲引擎,從存儲引擎的介紹、幾個常用引擎的特點三個方面進行講解,感興趣的小伙伴們可以參考一下

主要存儲引擎的介紹

1、InnoDB存儲引擎

InnoDB是MySQL的默認事務型引擎,它被設計用來處理大量的短期(short-lived)事務。除非有非常特別的原因需要使用其他的存儲引擎,否則應該優(yōu)先考慮InnoDB引擎。

建議使用MySQL5.5及以后的版本,因為這個版本及以后的版本的InnoDB引擎性能更好。

MySQL4.1以后的版本中,InnoDB可以將每個表的數(shù)據(jù)和索引存放在單獨的文件中。這樣在復制備份崩潰恢復等操作中有明顯優(yōu)勢??梢酝ㄟ^在my.cnf中增加innodb_file_per_table來開啟這個功能。如下:

InnoDB采用MVCC來支持高并發(fā),并且實現(xiàn)了四個標準的隔離級別。其默認級別是REPEATABLE READ(可重復讀),并且通過間隙鎖(next-key locking)策略防止幻讀的出現(xiàn)。(事務和事務隔離級別是另一個大題目,各自網(wǎng)補吧)。

InnoDB是基于聚簇索引建立的,聚簇索引對主鍵查詢有很高的性能。不過它的二級索引(secondary index,非主鍵索引)中必須包含主鍵列,所以如果主鍵列很大的話,其他的所有索引都會很大。因此表上的索引較多的話,主鍵應當盡可能的小。

InnoDB的存儲格式是平臺獨立的,可以將數(shù)據(jù)和索引文件從Intel平臺復制到Sun SPARC平臺或其他平臺。

InnoDB通過一些機制和工具支持真正的熱備份,MySQL的其他存儲引擎不支持熱備份。

2、MyISAM存儲引擎

MyISAM提供了大量的特性,包括全文索引、壓縮、空間函數(shù)(GIS)等,但MyISAM不支持事務和行級鎖,有一個毫無疑問的缺陷就是崩潰后無法安全恢復。

MyISAM會將表存儲在兩個文件在中:數(shù)據(jù)文件和索引文件,分別是.MYD和.MYI為擴展名。
在MySQL5.0以前,只能處理4G的數(shù)據(jù),5.0中可以處理256T的數(shù)據(jù)。

在數(shù)據(jù)不再進行修改操作時,可以對MyISAM表進行壓縮,壓縮后可以提高讀能力,原因是減少了磁盤I/O。

3、Archive引擎

Archive存儲引擎只支持INSERT和SELECT操作,在MySQL5.1之前不支持索引。

Archive表適合日志和數(shù)據(jù)采集類應用。

Archive引擎支持行級鎖和專用的緩存區(qū),所以可以實現(xiàn)高并發(fā)的插入,但它不是一個事物型的引擎,而是一個針對高速插入和壓縮做了優(yōu)化的簡單引擎。

幾個常用存儲引擎的特點

下面我們重點介紹幾種常用的存儲引擎并對比各個存儲引擎之間的區(qū)別和推薦使用方式。

 

常使用的2種存儲引擎:

Myisam是Mysql的默認存儲引擎。當create創(chuàng)建新表時,未指定新表的存儲引擎時,默認使用Myisam。每個MyISAM在磁盤上存儲成三個文件。文件名都和表名相同,擴展名分別是.frm(存儲表定義)、.MYD (MYData,存儲數(shù)據(jù))、.MYI (MYIndex,存儲索引)。數(shù)據(jù)文件和索引文件可以放置在不同的目錄,平均分布io,獲得更快的速度。 
InnoDB存儲引擎提供了具有提交、回滾和崩潰恢復能力的事務安全。但是對比Myisam的存儲引擎,InnoDB寫的處理效率差一些并且會占用更多的磁盤空間以保留數(shù)據(jù)和索引。

如何選擇合適的存儲引擎

選擇標準:根據(jù)應用特點選擇合適的存儲引擎,對于復雜的應用系統(tǒng)可以根據(jù)實際情況選擇多種存儲引擎進行組合。

下面是常用存儲引擎的適用環(huán)境:

MyISAM:默認的MySQL插件式存儲引擎,它是在Web、數(shù)據(jù)倉儲和其他應用環(huán)境下最常使用的存儲引擎之一
InnoDB:用于事務處理應用程序,具有眾多特性,包括ACID事務支持。
Memory:將所有數(shù)據(jù)保存在RAM中,在需要快速查找引用和其他類似數(shù)據(jù)的環(huán)境下,可提供極快的訪問。
Merge:允許MySQL DBA或開發(fā)人員將一系列等同的MyISAM表以邏輯方式組合在一起,并作為1個對象引用它們。對于諸如數(shù)據(jù)倉儲等VLDB環(huán)境十分適合。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • MySQL中LIKE?BINARY和LIKE模糊查詢實例代碼

    MySQL中LIKE?BINARY和LIKE模糊查詢實例代碼

    通常在實際應用中,會涉及到模糊查詢的需求,下面這篇文章主要給大家介紹了關于MySQL中LIKE?BINARY和LIKE模糊查詢的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-11-11
  • 淺析刪除表的幾種方法(delete、drop、truncate)

    淺析刪除表的幾種方法(delete、drop、truncate)

    這篇文章主要介紹了刪除表的幾種方法,需要的朋友可以參考下
    2014-05-05
  • mysql 8.0.15 版本安裝教程 連接Navicat.list

    mysql 8.0.15 版本安裝教程 連接Navicat.list

    這篇文章主要為大家詳細介紹了mysql 8.0.15 版本安裝教程,連接Navicat.list,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • mysql刪除語句超詳細匯總

    mysql刪除語句超詳細匯總

    這篇文章主要給大家介紹了關于mysql刪除語句超詳細匯總的相關資料,SQL是用于訪問和處理數(shù)據(jù)庫的標準的計算機語言,簡稱結(jié)構(gòu)化查詢語言,SQL中的刪除語句有多種方法,這里總結(jié)下,需要的朋友可以參考下
    2023-08-08
  • MySQL中如何給一個字段遞增賦值

    MySQL中如何給一個字段遞增賦值

    這篇文章主要介紹了MySQL中如何給一個字段遞增賦值問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • mysql中刪除數(shù)據(jù)的幾種方法(最新推薦)

    mysql中刪除數(shù)據(jù)的幾種方法(最新推薦)

    在MySQL數(shù)據(jù)庫中,刪除數(shù)據(jù)是一個常見的操作,它允許從表中移除不再需要的數(shù)據(jù),在執(zhí)行刪除操作時,需要謹慎,以免誤刪重要數(shù)據(jù),本文給大家介紹mysql中刪除數(shù)據(jù)的幾種方法,感興趣的朋友一起看看吧
    2023-11-11
  • K8s中MySQL?數(shù)據(jù)持久化存儲的實現(xiàn)

    K8s中MySQL?數(shù)據(jù)持久化存儲的實現(xiàn)

    本文主要介紹了K8s中MySQL?數(shù)據(jù)持久化存儲的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • Windows 下 MySQL 8.X 的安裝教程

    Windows 下 MySQL 8.X 的安裝教程

    這篇文章主要介紹了Windows 下 MySQL 8.X 的安裝教程,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • MySQL中binlog+dump備份還原詳細教程

    MySQL中binlog+dump備份還原詳細教程

    MySQL備份是指將MySQL數(shù)據(jù)庫中的數(shù)據(jù)進行備份,以便在需要的時候能夠恢復數(shù)據(jù),下面這篇文章主要給大家介紹了關于MySQL中binlog+dump備份還原的相關資料,需要的朋友可以參考下
    2023-05-05
  • 一步步教你在Navicat上如何停止正在運行的MYSQL語句

    一步步教你在Navicat上如何停止正在運行的MYSQL語句

    很多時候我們會提交一些耗時比較長的sql,可能出現(xiàn)mysql服務器內(nèi)存或者CPU暴增,引起報警,甚至影響其他業(yè)務,下面這篇文章主要給大家介紹了關于在Navicat上如何停止正在運行的MYSQL語句的相關資料,需要的朋友可以參考下
    2023-03-03

最新評論