文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  使用 InnoDB 資料表的優點

17.1.1 使用 InnoDB 資料表的優點

InnoDB 資料表具有下列優點

  • 如果伺服器因為硬體或軟體問題而意外結束,無論當時資料庫中發生什麼事情,您在重新啟動資料庫後都不需要執行任何特殊操作。InnoDB 崩潰復原會自動完成在崩潰前提交的變更,並復原正在處理但未提交的變更,讓您可以從上次中斷的地方重新啟動並繼續。請參閱第 17.18.2 節「InnoDB 還原」

  • InnoDB 儲存引擎維護其自身的緩衝池,該緩衝池會在存取資料時將資料表和索引資料快取在主記憶體中。經常使用的資料會直接從記憶體處理。此快取適用於許多類型的資訊並加快處理速度。在專用資料庫伺服器上,通常會將高達 80% 的實體記憶體指派給緩衝池。請參閱第 17.5.1 節「緩衝池」

  • 如果您將相關資料分割到不同的資料表中,您可以設定強制參考完整性的外部鍵。請參閱第 15.1.20.5 節「FOREIGN KEY 條件約束」

  • 如果磁碟或記憶體上的資料損毀,檢查總和機制會在您使用錯誤資料之前提醒您。 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 資料表」

  • 您可以透過查詢 Performance Schema 資料表來監控儲存引擎的效能詳細資訊。請參閱第 17.16 節「InnoDB 與 MySQL Performance Schema 的整合」

  • 您可以將 InnoDB 資料表與來自其他 MySQL 儲存引擎的資料表混合使用,即使在同一個陳述式中也是如此。例如,您可以使用聯結操作來結合來自 InnoDBMEMORY 資料表中的資料,在單一查詢中。

  • InnoDB 專為 CPU 效率和處理大量資料時的最大效能而設計。

  • InnoDB 資料表可以處理大量資料,即使在檔案大小限制為 2GB 的作業系統上也是如此。

關於您可以套用到 MySQL 伺服器和應用程式程式碼的 InnoDB 特定調整技術,請參閱第 10.5 節「最佳化 InnoDB 資料表」