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儲存引擎簡介儲存引擎
- MyISAM 儲存引擎,Innodb 儲存引擎儲存引擎
- Innodb儲存引擎儲存引擎
- MySQL 5.5儲存引擎介紹MySql儲存引擎
- InnoDB儲存引擎——表儲存引擎
- MySQL InnoDB儲存引擎MySql儲存引擎
- MySQL InnoDB儲存引擎更新Cardinality統計資訊的策略介紹MySql儲存引擎
- MySQL儲存引擎入門介紹MySql儲存引擎
- Mysql常見儲存引擎介紹MySql儲存引擎
- InnoDB儲存引擎檔案儲存引擎
- mysql常用儲存引擎(InnoDB、MyISAM、MEMORY、MERGE、ARCHIVE)介紹與如何選擇MySql儲存引擎Hive
- Mysql技術內幕InnoDB儲存引擎讀書筆記--《二》InnoDB儲存引擎MySql儲存引擎筆記
- MySQL InnoDB 儲存引擎探祕MySql儲存引擎
- InnoDB儲存引擎——兩次寫儲存引擎
- InnoDB儲存引擎——記憶體儲存引擎記憶體
- InnoDB儲存引擎——Checkpoint技術儲存引擎
- InnoDB儲存引擎——插入緩衝儲存引擎
- InnoDB儲存引擎——非同步IO儲存引擎非同步
- MySQL儲存引擎簡介及MyISAM和InnoDB的區別MySql儲存引擎
- 你真的瞭解Innodb儲存引擎?儲存引擎
- InnoDB儲存引擎MVCC實現原理儲存引擎MVC
- innodb儲存引擎備份工具--Xtrabackup儲存引擎
- 第二章 InnoDB儲存引擎儲存引擎
- 儲存引擎簡介儲存引擎
- MySQL引擎介紹ISAM,MyISAM,HEAP,InnoDBMySql
- [Mysql技術內幕]Innodb儲存引擎MySql儲存引擎
- InnoDB儲存引擎鎖機制(一、案例)儲存引擎
- innodb儲存引擎鎖的實現(一)儲存引擎
- MySQL InnoDB儲存引擎體系結構MySql儲存引擎
- 《MySQL 效能優化》之 InnoDB 儲存引擎MySql優化儲存引擎
- InnoDB儲存引擎——後臺執行緒儲存引擎執行緒
- MySQL儲存引擎--MyISAM與InnoDB區別MySql儲存引擎
- MySQL技術內幕:InnoDB儲存引擎MySql儲存引擎
- MySQLInnoDB儲存引擎(一):精談innodb的儲存結構MySql儲存引擎
- MyISAM與innoDB儲存引擎有何差別儲存引擎
- MySQL儲存引擎:MyISAM和InnoDB的區別MySql儲存引擎
- InnoDB儲存引擎——Master Thread工作方式儲存引擎ASTthread
- InnoDB儲存引擎——自適應雜湊索引儲存引擎索引