如何選擇資料庫儲存引擎

2022-05-01 08:15:07 字數 1245 閱讀 5770

常見的資料庫儲存引擎有:isam、myisam 和innodb;

根據每個不同的儲存引擎提供的不同的核心功能、以及不同的應用場景等;一般把核心功能分為4類:支援的字段和資料型別、鎖定型別、索引、以及事務處理;

1:支援的字段和資料型別:

雖然所有的引擎都支援通用的資料型別(如:整型、字串等)、但是、並不是所有的引擎都支援其它的字段型別(如:二進位制、text文字型別);

2:鎖定型別:

鎖定機制主要是為了防止多個處理同時更新同乙個資料。不同的儲存引擎支援不同級別的鎖:表鎖定、頁鎖、行鎖等;

3:表鎖:

開銷小、加鎖快、不會出現死鎖。鎖定力度大、發生鎖衝突的概率比較高、併發度最低。支援最多的就是表鎖定,myisam 和 memory 支援表鎖。mysql的表鎖有兩種模式、表共享讀鎖和表共享寫鎖。對於 myisam 表的讀操作、不會阻塞其它使用者對同一表讀的請求、但是會阻塞對同一表的寫請求;對 myisam 表的寫操作、則會阻塞其它使用者對同一表的讀和寫操作;

4:行鎖:

開銷大、加鎖慢、會出現死鎖;鎖力度最小、發生鎖衝突的概率最低、併發也是最高的。innodb 表進是行鎖定;

5:索引:

建立索引在搜尋和恢復資料庫中的資料的時候、能夠顯著提高效能;不同的儲存引擎提供不同的製作索引對技術、有的搜尋引擎不支援索引;

6:事務處理:

事務處理有助於提高向表中更新資料和插入資料期間的可靠性;

isam:

isam 是乙個定義明確且歷經時間考驗的資料**管理方法,它在設計之時就考慮到數 據庫被查詢的次數要遠大於更新的次數。因此,isam 執行讀取操作的速度很快,而且不佔 用大量的記憶體和儲存資源。isam 的兩個主要不足之處在於,它不支援事務處理,也不能夠 容錯:如果你的硬碟崩潰了,那麼資料檔案就無法恢復了。

myisam:

myisam 管理非事務表、是isam 的擴充套件格式。除了提供isam裡所沒有的索引的字段管理等的大量功能、myisam 還使用一種**鎖定的機制、來優化多個併發的讀寫操作。myisam 提供高速儲存和檢索、以及全文搜尋能力;在mysql5.5.5版本及以下的所有mysql配置裡被支援。也是預設的儲存引擎。

innodb:

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

資料庫儲存引擎

mysql中提到了儲存引擎這個概念。簡而言之,儲存引擎就是表的型別。資料庫的儲存引擎決定了表在計算機中的儲存方式。show engines語句可以檢視mysql資料庫支援的儲存引擎。innodb儲存引擎給mysql的表提供了事物,回滾,崩潰修復和多版本併發控制的事物安全。innodb是mysql上第...

資料庫儲存引擎

儲存引擎 處理表的處理器 1 基本操作 1 檢視所有的儲存引擎 show engines 2 檢視已有表的儲存引擎 show create table 表名 engine innodb 3 建立表時指定儲存引擎 create table 表名 engine myisam 4 工作中常用儲存引擎 in...

資料庫儲存引擎

資料庫引擎簡單來說就是乙個 資料庫發動機 當你訪問資料庫時,不管是手工訪問,還是程式訪問,都不是直接讀寫資料庫檔案,而是通過資料庫引擎去訪問資料庫檔案。以關係型資料庫為例,你發sql語句給資料庫引擎,資料庫引擎解釋sql語句,提取出你需要的資料返回給你。因此,對訪問者來說,資料庫引擎就是sql語句的...