日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

對(duì)于數(shù)據(jù)庫這一塊詢問比較多的就是在 MySQL 中怎么去選擇一種何時(shí)當(dāng)前業(yè)務(wù)需求的存儲(chǔ)引擎,而 MySQL 中支持的存儲(chǔ)引擎又有很多種,那么 MySQL 中分別又有那些,怎么優(yōu)雅的使用呢?

劃分引擎原因

在文件系統(tǒng)中,MySQL 將每個(gè)數(shù)據(jù)庫(也可以稱之為 schema )保存為數(shù)據(jù)目錄下的一個(gè)子目錄。創(chuàng)建表時(shí),MySQL 會(huì)在數(shù)據(jù)庫子目錄下創(chuàng)建一個(gè)和表同名的 .frm 文件保存表的定義。例如創(chuàng)建一個(gè)名為 DebugTable 的表,MySQL 會(huì)在 DebugTable.frm 文件中保存該表的定義。

因?yàn)?MySQL 使用文件系統(tǒng)的目錄和文件來保存數(shù)據(jù)庫和表的定義,大小寫敏感性和具體的平臺(tái)密切相關(guān)。在 windows 系統(tǒng)中,大小寫是不敏感的;而在類 Unix 系統(tǒng)中則是敏感的。不同的存儲(chǔ)引擎保存數(shù)據(jù)和索引的方式是不同的,但表的定義則是在 MySQL 服務(wù)層wk統(tǒng)一處理的。

查看支持引擎

想了解 MySQL 中支持的引擎的情況,可以使用如下命令查看:

show engines;

結(jié)果如下(MySQL版本:Ver 8.0.19):

mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disAppears) | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)

存儲(chǔ)引擎分類

MySQL 存儲(chǔ)引擎分類有 MyISAM、InnoDB、Memory、Merge等,可以看上面表中列出的支持引擎,但是其中最為常用的就是 MyISAM 和 InnoDB 兩個(gè)引擎,其中針對(duì)于以上講到的存儲(chǔ)引擎,如下表進(jìn)行對(duì)比:

怎么優(yōu)雅的選擇 MySQL 存儲(chǔ)引擎

 

MyISAM 與 InnoDB 區(qū)別

兩種類型最主要的差別是InnoDB支持事務(wù)處理與外鍵和行級(jí)鎖。

  1. InnoDB 可借由事務(wù)日志( Transaction Log )來恢復(fù)程序崩潰( crash ),或非預(yù)期結(jié)束所造成的數(shù)據(jù)錯(cuò)誤;
    而 MyISAM 遇到錯(cuò)誤,必須完整掃描后才能重建索引,或修正未寫入硬盤的錯(cuò)誤。
  2. InnoDB 的修復(fù)時(shí)間,一般都是固定的,但 MyISAM 的修復(fù)時(shí)間,則與數(shù)據(jù)量的多寡成正比。
  3. 相對(duì)而言,隨著數(shù)據(jù)量的增加InnoDB 會(huì)有較佳的穩(wěn)定性
  4. MyISAM 必須依靠操作系統(tǒng)來管理讀取與寫入的緩存,而 InnoDB 則是有自己的讀寫緩存管理機(jī)制。( InnoDB 不會(huì)將被修改的數(shù)據(jù)頁立即交給操作系統(tǒng))因此在某些情況下,InnoDB 的數(shù)據(jù)訪問會(huì)比 MyISAM 更有效率
  5. InnoDB 目前并不支持 MyISAM 所提供的壓縮與 terse row formats(簡潔的行格式) ,所以對(duì)硬盤與高速緩存的使用量較大
  6. 當(dāng)操作完全兼容 ACID(事務(wù))時(shí),雖然 InnoDB 會(huì)自動(dòng)合并數(shù)筆連接,但每次有事務(wù)產(chǎn)生時(shí),仍至少須寫入硬盤一次,因此對(duì)于某些硬盤或磁盤陣列,會(huì)造成每秒 200 次的事務(wù)處理上限。
    若希望達(dá)到更高的性能且保持事務(wù)的完整性,就必使用磁盤緩存與電池備援。
    當(dāng)然 InnoDB 也提供數(shù)種對(duì)性能沖擊較低的模式,但相對(duì)的也會(huì)降低事務(wù)的完整性。而MyISAM則無此問題,但這并非因?yàn)樗容^先進(jìn),這只是因?yàn)樗恢С质聞?wù)。

應(yīng)用場景

  • MyISAM 管理非事務(wù)表。它提供高速存儲(chǔ)和檢索,以及全文搜索能力。如果應(yīng)用中需要執(zhí)行大量的 SELECT 查詢,那么 MyISAM 是更好的選擇。
  • InnoDB 用于事務(wù)處理應(yīng)用程序,具有眾多特性,包括 ACID 事務(wù)支持。如果應(yīng)用中需要執(zhí)行大量的 INSERT 或 UPDATE 操作,則應(yīng)該使用 InnoDB,這樣可以提高多用戶并發(fā)操作的性能。

參考文章

  • Mysql 存儲(chǔ)引擎的區(qū)別和比較 – zgrgfr – CSDN
  • Mysql的存儲(chǔ)引擎之:MERGE存儲(chǔ)引擎 – 翔之天空 – CSDN
  • MySQL存儲(chǔ)引擎之Merge引擎
  • MySQL存儲(chǔ)引擎 – MyISAM與InnoDB區(qū)別 – Rocky – 知乎
  • MySQL引擎介紹 – 慕課網(wǎng) – 知乎
  • MyISAM和InnoDB區(qū)別和應(yīng)用場景 – Ryo8

分享到:
標(biāo)簽:引擎 MySQL
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績?cè)u(píng)定