国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

簡(jiǎn)述MySQL InnoDB存儲(chǔ)引擎

瀏覽:2日期:2023-10-12 17:04:30

前言:

存儲(chǔ)引擎是數(shù)據(jù)庫(kù)的核心,對(duì)于 MySQL 來(lái)說(shuō),存儲(chǔ)引擎是以插件的形式運(yùn)行的。雖然 MySQL 支持種類繁多的存儲(chǔ)引擎,但最常用的當(dāng)屬 InnoDB 了,本篇文章將主要介紹 InnoDB 存儲(chǔ)引擎相關(guān)知識(shí)。

1. InnoDB 簡(jiǎn)介

MySQL 5.5 版本以后,默認(rèn)存儲(chǔ)引擎就是 InnoDB 了。InnoDB 是一種兼顧了高可靠性和高性能的通用存儲(chǔ)引擎。在 MySQL 5.7 中,除非你配置了其他默認(rèn)存儲(chǔ)引擎,否則執(zhí)行 CREATE TABLE 不指定 ENGINE 的語(yǔ)句將創(chuàng)建一個(gè) InnoDB 表。

# 查看MySQL支持的存儲(chǔ)引擎mysql> show engines;+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+| Engine | Support | Comment | Transactions | XA | Savepoints |+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES || MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO || MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO || BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO || MyISAM | YES | MyISAM storage engine | NO | NO | NO || CSV| YES | CSV storage engine | NO | NO | NO || ARCHIVE | YES | Archive storage engine | NO | NO | NO || PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO || FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+# 查看默認(rèn)存儲(chǔ)引擎mysql> show variables like ’default_storage_engine’;+------------------------+--------+| Variable_name | Value |+------------------------+--------+| default_storage_engine | InnoDB |+------------------------+--------+

2. InnoDB 優(yōu)勢(shì)

InnoDB 之所以如此受寵,主要在于其功能方面的較多優(yōu)勢(shì)。

1)支持事務(wù)

InnoDB 最重要的一點(diǎn)就是支持事務(wù),可以說(shuō)這是 InnoDB 成為 MySQL 中最流行的存儲(chǔ)引擎的一個(gè)非常重要的原因。此外 InnoDB 還實(shí)現(xiàn)了 4 種隔離級(jí)別(READ UNCOMMITTED,READ COMMITTED,REPEATABLE READ 和 SERIALIZABLE),使得對(duì)事務(wù)的支持更加靈活。

2)災(zāi)難恢復(fù)性好

InnoDB 通過(guò) commit、rollback、crash-recovery 來(lái)保障數(shù)據(jù)的安全。

具體來(lái)說(shuō),crash-recovery 就是指如果服務(wù)器因?yàn)橛布蜍浖膯?wèn)題而崩潰,不管當(dāng)時(shí)數(shù)據(jù)是怎樣的狀態(tài),在重啟 MySQL 后,InnoDB 都會(huì)自動(dòng)恢復(fù)到發(fā)生崩潰之前的狀態(tài)。

3)使用行級(jí)鎖

InnoDB 改變了 MyISAM 的鎖機(jī)制,實(shí)現(xiàn)了行鎖。雖然 InnoDB 的行鎖機(jī)制是通過(guò)索引來(lái)完成的,但畢竟在數(shù)據(jù)庫(kù)中大部分的 SQL 語(yǔ)句都要使用索引來(lái)檢索數(shù)據(jù)。行鎖定機(jī)制也為 InnoDB 在承受高并發(fā)壓力的環(huán)境下增強(qiáng)了不小的競(jìng)爭(zhēng)力。

4)實(shí)現(xiàn)了緩沖處理

InnoDB 提供了專門(mén)的緩沖池,實(shí)現(xiàn)了緩沖管理,不僅能緩沖索引也能緩沖數(shù)據(jù),常用的數(shù)據(jù)可以直接從內(nèi)存中處理,比從磁盤(pán)獲取數(shù)據(jù)處理速度要快。在專用數(shù)據(jù)庫(kù)服務(wù)器上,通常會(huì)將最多80%的物理 memory 分配給緩沖池。

5)支持外鍵

InnoDB 支持外鍵約束,檢查外鍵、插入、更新和刪除,以確保數(shù)據(jù)的完整性。存儲(chǔ)表中的數(shù)據(jù)時(shí),每張表的存儲(chǔ)都按主鍵順序存放,如果沒(méi)有顯式在表定義時(shí)指定主鍵,InnoDB 會(huì)為每一行生成一個(gè)6字節(jié)的 ROWID ,并以此作為主鍵。

總結(jié):

本篇文章簡(jiǎn)單介紹了 InnoDB 存儲(chǔ)引擎及其優(yōu)勢(shì),想深入學(xué)習(xí) MySQL ,InnoDB 絕對(duì)是一塊繞不開(kāi)的重點(diǎn)知識(shí)。關(guān)于 InnoDB 的內(nèi)容還有很多,后面有機(jī)會(huì)的話可以多寫(xiě)寫(xiě)。

以上就是簡(jiǎn)述MySQL InnoDB存儲(chǔ)引擎的詳細(xì)內(nèi)容,更多關(guān)于MySQL InnoDB存儲(chǔ)引擎的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: MySQL 數(shù)據(jù)庫(kù)
相關(guān)文章:
主站蜘蛛池模板: 双桥区| 武义县| 游戏| 奈曼旗| 宜阳县| 全州县| 星子县| 阿尔山市| 澳门| 德清县| 通州市| 石柱| 精河县| 武安市| 高邮市| 通河县| 镇巴县| 平安县| 吉首市| 南昌市| 安康市| 林州市| 志丹县| 海城市| 略阳县| 大方县| 河间市| 溧阳市| 博兴县| 疏附县| 新绛县| 嘉荫县| 潞城市| 通江县| 广元市| 九江县| 二手房| 新建县| 察隅县| 台东县| 会同县|