InnoDB
資料表具有以下優點:
如果伺服器因硬體或軟體問題而意外退出,無論當時資料庫中發生什麼,您都不需要在重新啟動資料庫後執行任何特殊操作。
InnoDB
當機復原會自動完成在當機時間之前已提交的變更,並還原正在處理但未提交的變更,讓您可以重新啟動並從上次中斷的地方繼續。請參閱第 17.18.2 節,「InnoDB 還原」。InnoDB
儲存引擎維護自己的緩衝池,將資料表和索引資料快取在主記憶體中,以便在存取資料時使用。常用資料直接從記憶體中處理。此快取適用於許多類型的資訊,並加快處理速度。在專用資料庫伺服器上,通常會將高達 80% 的實體記憶體分配給緩衝池。請參閱第 17.5.1 節,「緩衝池」。如果您將相關資料分割到不同的資料表中,您可以設定外來鍵來強制執行參考完整性。請參閱第 15.1.20.5 節,「外來鍵約束」。
如果資料在磁碟或記憶體中損壞,校驗和機制會在您使用虛假資料之前發出警告。
innodb_checksum_algorithm
變數定義InnoDB
使用的校驗和演算法。當您為每個資料表設計適當的主索引鍵欄位時,涉及這些欄位的操作會自動最佳化。在
WHERE
子句、ORDER BY
子句、GROUP BY
子句和聯結操作中參考主索引鍵欄位非常快。請參閱第 17.6.2.1 節,「叢集索引與次要索引」。插入、更新和刪除操作會透過一個名為變更緩衝的自動機制進行最佳化。
InnoDB
不僅允許對同一個資料表進行並行的讀取和寫入存取,它還會快取變更的資料以簡化磁碟 I/O。請參閱第 17.5.2 節「變更緩衝」。效能優勢不僅限於執行長時間查詢的大型資料表。當從資料表重複存取相同的列時,自適性雜湊索引會接管,讓這些查詢速度更快,就像從雜湊表取得資料一樣。請參閱第 17.5.3 節「自適性雜湊索引」。
您可以壓縮資料表和相關索引。請參閱第 17.9 節「InnoDB 資料表和頁面壓縮」。
您可以加密您的資料。請參閱第 17.13 節「InnoDB 靜態資料加密」。
您可以建立和刪除索引,並執行其他 DDL 操作,而對效能和可用性的影響要小得多。請參閱第 17.12.1 節「線上 DDL 操作」。
截斷每個資料表檔案的表空間非常快速,並且可以釋放磁碟空間,供作業系統重複使用,而不僅僅是
InnoDB
。請參閱第 17.6.3.2 節「每個資料表檔案的表空間」。使用
DYNAMIC
列格式,BLOB
和長文字欄位的資料表資料儲存配置效率更高。請參閱第 17.10 節「InnoDB 列格式」。您可以透過查詢
INFORMATION_SCHEMA
資料表來監控儲存引擎的內部運作。請參閱第 17.15 節「InnoDB INFORMATION_SCHEMA 資料表」。您可以透過查詢效能架構資料表來監控儲存引擎的效能詳細資訊。請參閱第 17.16 節「InnoDB 與 MySQL 效能架構的整合」。
您可以將
InnoDB
資料表與來自其他 MySQL 儲存引擎的資料表混合使用,即使在同一個陳述式中也是如此。例如,您可以使用聯結操作來組合來自InnoDB
和MEMORY
資料表的資料在單一查詢中。InnoDB
在處理大量資料時,設計上兼顧 CPU 效率和最大效能。InnoDB
資料表可以處理大量資料,即使在檔案大小限制為 2GB 的作業系統上也是如此。
有關您可以應用於 MySQL 伺服器和應用程式碼的 InnoDB
特定調整技術,請參閱第 10.5 節「針對 InnoDB 資料表進行最佳化」。