MySQL基礎入門學習 14 儲存引擎

2022-08-13 10:33:14 字數 2417 閱讀 3585

檢視資料表的建立命令:

【儲存引擎】: mysql可以將資料以不同的奇數儲存在檔案(記憶體)中,這種技術就成為儲存引擎

每一種儲存引擎都使用了不同的儲存機制、索引技巧、鎖定水平,最終提供廣泛且不同的功能

在關係型資料庫當中,資料的儲存是以表的形式來實現的。所以儲存引擎也可以稱為表型別

【mysql支援的儲存引擎】:

myisam,

innodb,

memory,

csv,

archive

【併發處理】: 

併發控制: 當多個連線對記錄進行操作時保證資料的一致性和完整性的技術。

例如兩個使用者同時登陸,其中乙個要對某一行記錄刪除,而另乙個使用者恰好要讀取這一行記錄,

結果可能是正在讀取資訊的使用者報錯而退出,也可能得到一條與實際記錄不符的資訊。

解決這類經典問題的方法就是使用併發控制: 在處理併發讀或併發寫時,系統會使用一套鎖系統來解決這個問題。

這個鎖系統由兩類【鎖】來組成:

【共享鎖(讀鎖)】: 在同一時間段內,多個使用者可以讀取同乙個資源,讀取過程中資料不會發生任何變化(相互不做干擾);

【排他鎖(寫鎖)】: 在任何時候只能有乙個使用者寫入資源,當進行寫鎖時會阻塞其他的讀鎖或者寫鎖操作(出於安全策略的考慮)。

【鎖的顆粒】: 鎖定時的單位。我們其實只需要對修改的資料精確加鎖即可,而無需對所有資源均加鎖。加鎖只加最對的,而不是加最大的。

加鎖會增加系統的開銷: 我們通過鎖策略在鎖開銷與資料安全之間尋求一種平衡

【表鎖】:是一種開銷最小的鎖策略。 當使用者針對某資料表進行操作時,使用者即獲得了對該錶的寫鎖許可權,寫鎖會禁止其他使用者的讀、寫操作。這張表只能有乙個鎖。

【行鎖】:是一種開銷最大的鎖策略,是支援最大併發操作處理的情況。這張表中有多少條記錄就可能對每乙個記錄都有乙個鎖

【事務處理】:【事務】是資料庫區別於檔案系統的重要特徵之一, 用於保證資料庫的完整性。

例如,某個使用者要通過網銀給別人轉200元,則操作如下:  

1. 從當前賬戶減掉200元(賬戶餘額大於等於200元);

2. 在對方賬戶增加200元。

兩個過程應該作為乙個整體出現,無論哪個過程出現了問題,都應該恢復到資料的原始狀態。

【事務的特性——acid】:

1. 原子性(atomicity)

2. 一致性(consistency)

3. 隔離性(isolation)

4. 永續性 (durability)

【外來鍵和索引】: 【外來鍵】是保證資料一致性的策略 (see 

【索引】是對資料表中一列或多列的值進行排序的一種結構,使用索引可以快速地訪問資料表當中的特定資訊,是進行記錄快速定位的一種方法(模擬書的目錄)。

可分為普通索引、唯一索引、全文索引、btree索引、hash索引......         

【各個儲存引擎特點】

特點myisam

innodb

memory

archive

儲存限制

256tb

64tb

有 (由記憶體大小決定)

無事務安全-支援

--支援索引

支援支援

支援鎖顆粒

表鎖行鎖

表鎖行鎖

資料壓縮支援-

-支援支援外來鍵-支援

- -此外, csv是由逗號分隔的儲存引擎,會在資料庫的子目錄中為每一表建立乙個.csv檔案(一種普通的文字檔案),每乙個資料行占用乙個文字行,不支援索引

blackhole: 黑洞引擎,寫入的資料都會消失,一般用於做資料複製的中繼。

一般最常用的儲存引擎是myisam 和 innodb這兩種儲存引擎。

其中,myisam適用於事務的處理不多的情況;

innodb適用於事務處理比較多,需要有外來鍵支援的情況。

大牛們也可以對資料引擎進行擴充套件。

【設定儲存引擎】

【修改儲存引擎的方法】: 

方法一:通過修改mysql配置檔案實現: default-storage-engine = engine_name 

方法二:通過建立資料表命令實現:

方法三:通過修改資料表命令實現

[參考鏈結]    

mysql入門基礎學習

日期型別 date 可以賦值字元格式的自定義日期格式,也可以使用curdate 函式,current date 函式等 decimal a,b a表示一共可以傳入的字元長度,b表示小數字的保留位數.除了數值型別外,其它的字段型別的值必須使用引號引起 dos命令列輸入中文,暫時改變編碼格式 set n...

mysql基礎入門 學習筆記

當您拍攝 並將其上傳到微博,朋友圈等,這樣的社交網路中的帳戶時,您的 庫就有可能儲存在乙個資料庫中。資料庫無處不在。那麼什麼是資料庫?根據定義,資料庫只是乙個結構化的資料集合。資料本質上相互關聯,例如,產品屬於產品類別並與多個標籤相關聯。這就是為什麼要使用關聯式資料庫。在關聯式資料庫中,我們使用表對...

mysql 儲存過程基礎 MySQL基礎 儲存過程

儲存過程 定義 將一批為了完成特定功能的sql語句集,根據傳入的引數 也可沒有 呼叫,完成單個sql語句更複雜的功能 儲存過程思想很簡單,就是sql語句層面上的 封裝和重用 優點 1 可封裝,並隱藏複雜的業務邏輯 2 可回傳值,且可接受引數 缺點 因支援的程式語言不通,效能調校和撰寫,受限於各種資料...