14.1 InnoDB 儲存引擎介紹
14.1 InnoDB 儲存引擎介紹
InnoDB 儲存引擎是一個通用的兼顧高可靠、高效能的儲存引擎。 在Mysql5.7, InnoDB是預設的儲存引擎, 除非你在建立表時指定儲存引擎,create table ... engine = ...
使用Innodb 的好處
-
DML操作遵循ACID 模型, 支援transactions 特性,commit, rollback, and crash-recovery 保護使用者資料。可以檢視14.2 InnoDB 和ACID 模型章節。
-
行級鎖和 Oracle 風格的一致性讀增強了多使用者的併發和效能。 可以檢視14.5 InnoDB 鎖和事務模型章節。
-
InnoDB 表是依據主鍵組織的表,能最佳化查詢。 每一個InnoDB 表都有一個主鍵索引稱為clustered index 能做到查詢時最小的I/O。 可以檢視14.8.2.1 Clustered index 和Secondary 索引
-
為了維護資料的完整性,InnoDB支援 Foreign Key 約束。 可以檢視14.8.1.6 InnoDB 和 Foreign Key 約束。
想了解InnoDB 與其他儲存引擎的資訊,可以檢視15 章。
14.1.1 使用InnoDB 表的好處
使用InnoDB 可以獲得如下收益:
-
在伺服器因為硬體或軟體故障crash的時候,在重啟時無需做任何操作,InnoDB 會完成crash recovery 操作。
-
Innodb 會維護自己的buffer pool 快取表和索引資料用於資料查詢。 在專有資料庫伺服器,超過80%的實體記憶體常常被分配給Innodb buffer pool.
-
使用foreign keys 保障資料的完整性。
-
如果資料在磁碟或記憶體中損壞,會有checksum mechanism 警告。
-
設計表時新增主鍵有助於提高order by , group by 和join的效能。
-
change buffering 有助於inserts,updates,deletes的最佳化。
-
支援Adaptive Hash Index ,有助於查詢效能。
-
支援表和索引壓縮
14.1.2 InnoDB 表的最佳實踐
-
給每張表新增主鍵有助於查詢,或者設定auto-increment主鍵。
-
外來鍵關聯的欄位需要新增索引
-
關閉自動提交 autocommit
-
透過使用start transaction 和commit 將DML操作分組的放在事務裡
-
不要使用lock tables操作,使用select ... for update; 替代
-
開啟innodb_file_per_table 引數將資料和索引放在單獨的表空間而不是system 表空間,innodb_file_per_table引數在5.6.6中是預設開啟的
-
嘗試使用row_format = compressed引數
14.1.3 檢查InnoDB 引擎是否可用
-
show engines;
14.1.4 Testing and Benchmarking with InnoDB
14.1.5 Turning off InnoDB
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21374452/viewspace-2730520/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- InnoDB儲存引擎簡介儲存引擎
- MySQL InnoDB儲存引擎更新Cardinality統計資訊的策略介紹MySql儲存引擎
- MySQL InnoDB儲存引擎MySql儲存引擎
- mysql常用儲存引擎(InnoDB、MyISAM、MEMORY、MERGE、ARCHIVE)介紹與如何選擇MySql儲存引擎Hive
- MySQL儲存引擎入門介紹MySql儲存引擎
- MySQL InnoDB 儲存引擎探祕MySql儲存引擎
- MySQL儲存引擎簡介及MyISAM和InnoDB的區別MySql儲存引擎
- InnoDB儲存引擎MVCC實現原理儲存引擎MVC
- 第二章 InnoDB儲存引擎儲存引擎
- 你真的瞭解Innodb儲存引擎?儲存引擎
- 儲存引擎簡介儲存引擎
- MySQLInnoDB儲存引擎(一):精談innodb的儲存結構MySql儲存引擎
- InnoDB儲存引擎鎖機制(一、案例)儲存引擎
- MySQL儲存引擎--MyISAM與InnoDB區別MySql儲存引擎
- innodb儲存引擎鎖的實現(一)儲存引擎
- 《MySQL 效能優化》之 InnoDB 儲存引擎MySql優化儲存引擎
- [Mysql技術內幕]Innodb儲存引擎MySql儲存引擎
- MySQL InnoDB儲存引擎體系結構MySql儲存引擎
- MyISAM與innoDB儲存引擎有何差別儲存引擎
- MySQL儲存引擎:MyISAM和InnoDB的區別MySql儲存引擎
- 十八、Mysql儲存引擎並不只有MyISAM、InnoDB——精髓MySql儲存引擎
- MySQL高階10-InnoDB引擎儲存架構MySql架構
- 每日分享-MySQL-2019-08-05-【InnoDB 儲存引擎】MySql儲存引擎
- 總結MySQL儲存引擎MyISAM與InnoDB區別MySql儲存引擎
- mysql儲存引擎InnoDB詳解,從底層看清InnoDB資料結構MySql儲存引擎資料結構
- InnoDB儲存引擎鎖機制(五、 常見問題)儲存引擎
- InnoDB儲存引擎鎖機制(二、 鎖的型別)儲存引擎型別
- 談談MySQL InnoDB儲存引擎事務的ACID特性MySql儲存引擎
- MySQL三種InnoDB、MyISAM和MEMORY儲存引擎對比MySql儲存引擎
- InnoDB儲存引擎鎖機制(三、鎖的演算法)儲存引擎演算法
- MySQL兩種儲存引擎: MyISAM和InnoDB 簡單總結MySql儲存引擎
- MySQL原理 - InnoDB引擎 - 行記錄儲存 - Off-page 列MySql
- MySQL中InnoDB儲存引擎的實現和執行原理MySql儲存引擎
- MySQL資料庫儲存引擎簡介MySql資料庫儲存引擎
- 雲端儲存產品介紹
- 服務端指南 資料儲存篇 | MySQL(02) 儲存引擎的 InnoDB 與 MyISAM 之爭服務端MySql儲存引擎
- 儲存引擎儲存引擎
- 《MySQL 基礎篇》十二:InnoDB 儲存引擎的資料結構MySql儲存引擎資料結構