九、存儲引擎

9-1 課程回顧

 

9-2 存儲引擎簡介

(1)MySQL可以將數據以不同的技術存儲在文件(內存)中,這種技術就成爲存儲引擎。 每種存數引擎使用不同的存儲機制、索引技巧、鎖定水平,最終提供廣泛且不同的功能。

(2)使用不同的存儲引擎也可以說不同類型的表

(3)MySQL支持的存儲引擎

  •  MyISAM
  • InnoDB
  • Memory
  • CSV
  • Archive

 

9-3 相關知識點之併發處理

併發控制

當多個連接對記錄進行修改時保證數據的一致性和完整性。

系統使用鎖系統來解決這個併發控制,這種鎖分爲:

  1. 共享鎖(讀鎖)---在同一時間內,多個用戶可以讀取同一個資源,讀取過程中數據不會發生任何變化。
  2. 排他鎖(寫鎖)---在任何時候只能有一個用戶寫入資源,當進行寫鎖時會阻塞其他的讀鎖或者寫鎖操作。

鎖的力度(也叫鎖的顆粒)

鎖顆粒(鎖定時的單位)

---表鎖,是一種開銷最小的鎖策略。得到數據表的寫鎖

---行鎖,是一種開銷最大的鎖策略。並行性最大

表鎖的開銷最小,因爲使用鎖的個數最小,行鎖的開銷最大,因爲可能使用鎖的個數比較多。
 

9-4 相關知識點之事務處理 

事務處理:整個過程每一個單元全部完成纔算事務處理成功,某一個單元失敗事務就會回滾.

主要作用:保證數據庫的完整性

事務的特性: 原子性、一致性、隔離性、持久性 簡稱:A(Atomic)C(Consistency)I(Isolation)D(Durable)

 

9-5 相關知識點之外鍵和索引

1.外鍵:是保證數據一致性的策略。

2.索引:是對數據表中一列或者多列的值進行排序的一種結構。使用索引可以快速訪問數據表的特定信息。索引是進行記錄快速定位的一種方法。索引好比目錄。索引可以劃分爲:普通索引、唯一索引、全文索引。

3.各種存儲引擎的特點 (如圖):

 

9-6 各個存儲引擎特點

  • Memory的存儲限制是由內存的大小來決定。

索引:普通索引、唯一索引、全文索引、btree索引、hash索引……

  • CSV存儲引擎不支持索引。
  • BlackHole:黑洞引擎,寫入的數據都會消失,一般用做數據複製的中繼。

使用最廣泛的兩種存儲引擎:MyISAM/InnoDB

  • MyISAM:適用於事務的處理不多的情況。
  • InnoDB:適用於事務處理比較多,需要有外鍵支持的情況。

 

9-7 設置存儲引擎

(1)通過修改MySQL配置文件實現

- default-storage-engine = engine

(2)通過創建數據表命令來實現

CREATE TABLE tbl_name(

... ...

) ENGINE = engine;

(3)通過修改數據表命令實現 

ALTER TABLE tbl_name ENGINE [=] engine_name;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章