一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫(kù)技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫(kù) - Mysql - MySQL 選擇合適的存儲(chǔ)引擎

MySQL 選擇合適的存儲(chǔ)引擎

2021-02-04 17:40debug客棧 Mysql

這篇文章主要介紹了MySQL如何選擇合適的存儲(chǔ)引擎,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下

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

劃分引擎原因

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

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

查看支持引擎

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

?
1
show engines;

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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ì)比:

MySQL 選擇合適的存儲(chǔ)引擎

MyISAM 與 InnoDB 區(qū)別

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

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

應(yīng)用場(chǎ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ǔ)引擎的選擇的詳細(xì)內(nèi)容,更多關(guān)于MySQL 存儲(chǔ)引擎的資料請(qǐng)關(guān)注服務(wù)器之家其它相關(guān)文章!

原文鏈接:https://www.debuginn.cn/5753.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 性xxx免费 | 亚洲人成在线播放 | 娇喘嗯嗯 轻点啊视频福利 九九九九在线精品免费视频 | 校花被吃奶还摸下面 | 草草国产成人免费视频 | 99青青青精品视频在线 | 亚洲国产精品一在线观看 | 亚洲视频在线一区二区 | sxx免费看视频在线播放 | 亚洲 欧美 制服 校园 动漫 | 国产玖玖在线观看 | 国产精品理论片在线观看 | 日韩免费观看 | 五月色综合婷婷综合俺来也 | 久久受www免费人成_看片中文 | igao网果冻传媒 | 我们中文在线观看免费完整版 | 日本人作爰啪啪全过程 | 农夫69小说小雨与农村老太 | 99草精品视频 | 福利片免费一区二区三区 | 日日干天天爽 | 午夜香蕉成视频人网站高清版 | 小草观看免费高清视频 | aaa毛片手机在线现看 | 国产欧美日韩精品一区二 | 娇妻在床上迎合男人 | 国产suv精品一区二区四区三区 | 憋尿调教绝望之岛 | 亚洲视频一区二区在线观看 | 91精品国产综合久久消防器材 | 欧美日韩国产成人综合在线 | 69re在线观看 | 日本伊人色 | 恩不要好大好硬好爽3p | 日本视频高清 | 校草太大了h | 精品一区二区91 | 免费精品国产 | 99视频有精品视频免费观看 | 拔插拔插8x8x海外华人免费视频 |