久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

簡述MySQL InnoDB存儲引擎

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

前言:

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

1. InnoDB 簡介

MySQL 5.5 版本以后,默認存儲引擎就是 InnoDB 了。InnoDB 是一種兼顧了高可靠性和高性能的通用存儲引擎。在 MySQL 5.7 中,除非你配置了其他默認存儲引擎,否則執行 CREATE TABLE 不指定 ENGINE 的語句將創建一個 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 優勢

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

1)支持事務

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

2)災難恢復性好

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

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

3)使用行級鎖

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

4)實現了緩沖處理

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

5)支持外鍵

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

總結:

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

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

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 浦县| 卢氏县| 孟津县| 老河口市| 满洲里市| 垦利县| 沁阳市| 仁化县| 奉节县| 陆良县| 耒阳市| 崇阳县| 靖安县| 石狮市| 美姑县| 明光市| 五家渠市| 乐至县| 栖霞市| 瓮安县| 红桥区| 信宜市| 曲靖市| 达日县| 南京市| 文昌市| 玛纳斯县| 砀山县| 如东县| 宝山区| 龙泉市| 鸡西市| 右玉县| 柳林县| 北票市| 紫阳县| 简阳市| 鹰潭市| 巴林左旗| 普安县| 同江市|