InnoDB 儲存引擎的特點及優化方法

2021-09-14 01:28:22 字數 2031 閱讀 9890

innodb:

innodb 引擎是mysql資料庫的另乙個重要的儲存引擎、被包含在所有的二進位制安裝包裡面、和其它的儲存引擎相比、innodb引擎的優點是支援相容acid的事物、以及引數完整性(有外來鍵)等。mysql5.5.5以後預設的儲存引擎都是innodb引擎;

特性:

1:支援事務(要麼全成功、要麼全失敗);

2:行級鎖定(更新資料時一般指鎖定當前行):通過索引實現、全表掃瞄忍讓時表鎖、注意間隙所的影響;

3:讀寫阻塞與事務的隔離級別相關;

4:具有非常高的快取特性(既能快取索引、也能快取資料);

5:這個表和主鍵以組(cluster)的方式儲存、組成一顆平衡樹;

6:所有的輔助索引(secondary indexes)都會儲存主鍵資訊;

7:支援分割槽、表空間類似與oracle 資料庫;

8:支援外來鍵約束、不支援全文檢索(5.5.5之前的myisam支援全文檢索、5.5.5之後就不在支援);

9:相對myisam而言、對硬體的要求比較高

應用場景:

1:需要支援事務的業務;

2:行級鎖定對於高併發有很好的適應能力、但是需要保證查詢是通過索引完成的;

3:資料讀寫都很頻繁的環境(如:bbs、微博等);

4:對資料一致性要求比較高的業務(如充值、銀行轉轉);

5:硬體裝置記憶體較大、可以很好的利用innodb較好的快取能裡來提高記憶體利用率、減少io的開銷;

調優精要:

1:主鍵盡可能的小、避免給輔助索引(secondary indexes)帶來過大的空間負擔;

2:避免全表掃瞄(會使用表鎖);

3:盡可能的快取所有的索引和資料、提高響應速度、減少磁碟io消耗;

4:在大批量小插入的時候、盡量自己控制事務、而不使用autocommit自動提交;

5:合理設定innodb_flush_log_ad_trx_commit 引數值、不要過度追求安全性;

如果值為0、log buffer每秒就會被刷寫日誌檔案進入磁碟、提交事務的時候不做任何操作;

6:避免主鍵更新(主鍵更新會帶來大量的資料移動);

儲存:

innodb表由共享表空間檔案(ibdata1)、獨佔表空間檔案(ibd)、表結構檔案(.frm)、以及日誌檔案(redo)組成;

獨佔表空間檔案:

若將innodb_file_per_table 設定為 on、則系統將為每乙個表單獨生成乙個 table_name.ibd 的檔案、在此檔案中、儲存與該錶相關的資料、索引、表的內容、資料字典等資訊;

共享表空間檔案:

在innodb儲存引擎中、預設表空間檔案是 ibdata1 (主要儲存的是共享表空間資料),初始化為10m,可以擴充套件;共享表空間的大小

可以修改、使用 nnodb_data_file_path=ibdata1:370m;ibdata2:50m:autoextend 修改;使用共享表空間儲存方式時,innodb的所有資料儲存在乙個單獨的表空間裡面,而這個表空間可以由很多個檔案組成,乙個表可以跨多個檔案存在,所以其大小限制不再是檔案大小的限制,而是其自身的限制。從innodb的官方文件中可以看到,其表空間的最大限制為64tb,也就是說,innodb的單錶限制基本上也在64tb左右了,當然這個大小是包括這個表的所有索引等其他相關資料。而在使用單獨表空間儲存方式時,每個表的資料以乙個單獨的檔案來存放,這個時候的單錶限制,又變成檔案系統的大小限制了。

以下即為不同平台下,單獨表空間檔案最大限度。

operating system --- file-size limit

win 32 w/faf/fat32 --- 2gb/4gb

win 32 w/ntfs --- 2tb(possibly larger)

linux 2.4+ (using ext3 file system) --- 4tb

solaris 9/10 --- 16tb

macos x w/ hfs+ --- 2tb

netware w/nss file system --- 8tb

InnoDB 儲存引擎的特點及優化方法

innodb innodb 引擎是mysql資料庫的另乙個重要的儲存引擎 被包含在所有的二進位制安裝包裡面 和其它的儲存引擎相比 innodb引擎的優點是支援相容acid的事物 以及引數完整性 有外來鍵 等。mysql5.5.5以後預設的儲存引擎都是innodb引擎 特性 1 支援事務 要麼全成功 ...

InnoDB 儲存引擎

innodb是事務型資料庫的首選引擎,支援事務安全表 acid 支援行鎖定和外來鍵。mysql 5.5.5 之後,innodb作為預設儲存引擎。innodb的主要特性有一下幾項。a.innodb給mysql提供了具有提交 回滾和崩潰恢復能力的事務安全 acid相容 儲存引擎。innodb鎖定在行級並...

InnoDB 儲存引擎

設計上採用了類似於oracle資料庫的架構 接下來 詳細介紹 innodb 儲存引擎的 體系架構 及其不同於其他儲存引擎的特性 一 概述 innodb 儲存引擎 是第乙個完整支援acid事物的 mysql 儲存引擎 特點 1 行鎖設計 2 支援mvcc 3 提供一致性非鎖定讀 4 最有效地利用 以及...