佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > 簡述MySQL InnoDB存儲引擎

簡述MySQL InnoDB存儲引擎

熱門標簽:百度競價排名 網站排名優(yōu)化 呼叫中心市場需求 地方門戶網站 Linux服務器 AI電銷 鐵路電話系統 服務外包

前言:

存儲引擎是數據庫的核心,對于 MySQL 來說,存儲引擎是以插件的形式運行的。雖然 MySQL 支持種類繁多的存儲引擎,但最常用的當屬 InnoDB 了,本篇文章將主要介紹 InnoDB 存儲引擎相關知識。

1. InnoDB 簡介

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

# 查看MySQL支持的存儲引擎
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    |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+

# 查看默認存儲引擎
mysql> show variables like 'default_storage_engine';
+------------------------+--------+
| Variable_name     | Value |
+------------------------+--------+
| default_storage_engine | InnoDB |
+------------------------+--------+

 2. InnoDB 優(yōu)勢

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

1)支持事務

InnoDB 最重要的一點就是支持事務,可以說這是 InnoDB 成為 MySQL 中最流行的存儲引擎的一個非常重要的原因。此外 InnoDB 還實現了 4 種隔離級別(READ UNCOMMITTED,READ COMMITTED,REPEATABLE READ 和 SERIALIZABLE),使得對事務的支持更加靈活。

2)災難恢復性好

InnoDB 通過 commit、rollback、crash-recovery 來保障數據的安全。

具體來說,crash-recovery 就是指如果服務器因為硬件或軟件的問題而崩潰,不管當時數據是怎樣的狀態(tài),在重啟 MySQL 后,InnoDB 都會自動恢復到發(fā)生崩潰之前的狀態(tài)。

3)使用行級鎖

InnoDB 改變了 MyISAM 的鎖機制,實現了行鎖。雖然 InnoDB 的行鎖機制是通過索引來完成的,但畢竟在數據庫中大部分的 SQL 語句都要使用索引來檢索數據。行鎖定機制也為 InnoDB 在承受高并發(fā)壓力的環(huán)境下增強了不小的競爭力。

4)實現了緩沖處理

InnoDB 提供了專門的緩沖池,實現了緩沖管理,不僅能緩沖索引也能緩沖數據,常用的數據可以直接從內存中處理,比從磁盤獲取數據處理速度要快。在專用數據庫服務器上,通常會將最多80%的物理 memory 分配給緩沖池。

5)支持外鍵

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

總結:

本篇文章簡單介紹了 InnoDB 存儲引擎及其優(yōu)勢,想深入學習 MySQL ,InnoDB 絕對是一塊繞不開的重點知識。關于 InnoDB 的內容還有很多,后面有機會的話可以多寫寫。

以上就是簡述MySQL InnoDB存儲引擎的詳細內容,更多關于MySQL InnoDB存儲引擎的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • MySQL InnoDB架構的相關總結
  • MySQL InnoDB ReplicaSet(副本集)簡單介紹
  • 詳解MySQL InnoDB存儲引擎的內存管理
  • MySQL Innodb關鍵特性之插入緩沖(insert buffer)
  • MySQL InnoDB 鎖的相關總結
  • 如何區(qū)分MySQL的innodb_flush_log_at_trx_commit和sync_binlog
  • Mysql InnoDB的鎖定機制實例詳解
  • Mysql技術內幕之InnoDB鎖的深入講解
  • 修改MySQL數據庫引擎為InnoDB的操作
  • MySQL InnoDB表空間加密示例詳解
  • MySQL InnoDB 事務鎖源碼分析

標簽:湘潭 黃山 仙桃 銅川 蘭州 湖南 崇左 衡水

巨人網絡通訊聲明:本文標題《簡述MySQL InnoDB存儲引擎》,本文關鍵詞  ;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    阜新| 望都县| 英德市| 库车县| 凌源市| 沛县| 策勒县| 奉节县| 安达市| 东港市| 霞浦县| 渝中区| 松原市| 双流县| 襄垣县| 苏尼特右旗| 从江县| 元朗区| 仙游县| 平舆县| 越西县| 彰化市| 清涧县| 石渠县| 双峰县| 微山县| 集贤县| 白山市| 大安市| 志丹县| 泸西县| 鞍山市| 天柱县| 东海县| 江孜县| 明溪县| 建水县| 浑源县| 伊金霍洛旗| 隆安县| 波密县|