天天看點

mysql存儲引擎(總結筆記)mysql存儲引擎的基本介紹常用資料存儲引擎的比較差別(面試多問)如何修改表的存儲引擎

mysql存儲引擎的基本介紹

引擎(Engine)是電子平台上開發程式或系統的核心元件。利用引擎,開發者可迅速建立、鋪設程式所需的功能,或利用其輔助程式的運轉。一般而言,引擎是一個程式或一套系統的支援部分。常見的程式引擎有遊戲引擎,搜尋引擎,殺毒引擎等。

mysql的表可以有不同的存儲引擎,分為兩大類:

  1. 事務安全性存儲引擎

    BDB,InnoDB

  2. 非事務安全性存儲引擎

    Myisam, memory

  3. 檢視存儲引擎
show engines;
           
mysql存儲引擎(總結筆記)mysql存儲引擎的基本介紹常用資料存儲引擎的比較差別(面試多問)如何修改表的存儲引擎

常用資料存儲引擎的比較差別(面試多問)

mysql存儲引擎(總結筆記)mysql存儲引擎的基本介紹常用資料存儲引擎的比較差別(面試多問)如何修改表的存儲引擎

(1) MyISAM的存儲引擎的介紹

  1. 執行速度快.
  2. 不支援事務,不支援外鍵
  3. 會産生碎片,需要定時進行optimize table 表名[]
    mysql存儲引擎(總結筆記)mysql存儲引擎的基本介紹常用資料存儲引擎的比較差別(面試多問)如何修改表的存儲引擎
  4. 如果我們的表不需要事務,則考慮使用MyISAM
MyISAM:插入資料快,空間和記憶體使用比較低,搜尋查詢。如果表主要是用于插入新記錄和讀出記錄,那麼選擇MyISAM能實作處理高效率。如果應用的完整性、并發性要求比 較低也可以使用。(表鎖,全文搜尋 )

(2) InnoDB存儲引擎【推薦,高并發】

6. 并發性好.

7. 支援事務,支援外鍵

8. 适合資料修改或者添加的系統

InnoDB:支援事務處理,支援外鍵,支援崩潰修複能力和并發控制。如果需要對事務的完整性要求比較高(比如銀行),要求實作并發控制(比如售票),那選擇InnoDB有很大的優勢。如果需要頻繁的更新、删除操作的資料庫,也可以選擇InnoDB,因為支援事務的送出(commit)和復原(rollback)。行鎖

(3) Memory 存儲引擎

  1. 資料在記憶體中
  2. 執行速度快.
  3. 當重新開機mysql後,資料丢失了/表結構還在.
  4. memory 表,可以優化項目,可以存放經常查詢或者變化的資料,而且這些資料不需要入庫,比如(使用者的狀态[離線,線上,發呆]) .
    mysql存儲引擎(總結筆記)mysql存儲引擎的基本介紹常用資料存儲引擎的比較差別(面試多問)如何修改表的存儲引擎
MEMORY:所有的資料都在記憶體中,資料的處理速度快,但是安全性不高。如果需要很快的讀寫速度,對資料的安全性要求較低,可以選擇MEMOEY。它對表的大小有要求,不能建立太大的表。是以,這類資料庫隻使用在相對較小的資料庫表。

總結

1,同一個資料庫也可以使用多種存儲引擎的表。

2,如果一個表要求比較高的事務處理,即高并發情況下[在短時間内處理大量請求]使用InnoDB會比較好。

3,這個資料庫中可以将查詢要求比較高的表選擇MyISAM存儲,如果是删除的話,myisam會删除比較快,innodb會一行一行删除。

4,如果該資料庫需要一個用于查詢的臨時表,需要使用大量的查詢語句[不限定時間來執行],尤其是不使用select * 的情況下,myisam會比較好,适合于中小型網站。

如何修改表的存儲引擎

ALTER TABLE  `表名`  ENGINE = 儲存引擎;