資料庫的儲存引擎

2022-03-05 14:33:59 字數 2801 閱讀 8374

目錄面試題

mysql5.6支援的儲存引擎包括 innodb、myisam、memory、csv、blackhole、federated、mrg_myisam、

archive、performance_schema。其中ndb和innodb提供事務安全表,其他儲存引擎都是非事務安全表。

併發性:某些應用程式比其他應用程式具有很多的顆粒級鎖定要求(如行級鎖定)。

事務支援:並非所有的應用程式都需要事務,但對的確需要事務的應用程式來說,有著定義良好的需求,如acid相容等。

引用完整性:通過ddl定義的外來鍵,伺服器需要強制保持關聯資料庫的引用完整性。

物理儲存:它包括各種各樣的事項,從表和索引的總的頁大小,到儲存資料所需的格式,到物理磁碟。

索引支援:不同的應用程式傾向於採用不同的索引策略,每種儲存引擎通常有自己的編制索引方法,

但某些索引方法(如b-tree索引)對幾乎所有的儲存引擎來說是共同的。

記憶體高速緩衝:與其他應用程式相比,不同的應用程式對某些記憶體高速緩衝策略的響應更好,因此,

儘管某些記憶體高速緩衝對所有儲存引擎來說是共同的(如用於使用者連線的高速緩衝,mysql的高速查詢高速緩衝等),

其他高速緩衝策略僅當使用特殊的儲存引擎時才唯一定義。

效能幫助:包括針對並行操作的多i/o執行緒,執行緒併發性,資料庫檢查點,成批插入處理等。

其他目標特性:可能包括對地理空間操作的支援,對特定資料處理操作的安全限制等。

innodb

用於事務處理應用程式,支援外來鍵和行級鎖。如果應用對事物的完整性有比較高的要求,在併發條件下要求資料的一致性,

資料操作除了插入和查詢之外,還包括很多更新和刪除操作,那麼innodb儲存引擎是比較合適的。

innodb除了有效的降低由刪除和更新導致的鎖定,還可以確保事務的完整提交和回滾,

對於類似計費系統或者財務系統等對資料準確要求性比較高的系統都是合適的選擇。

#innodb 5.6以上 預設儲存方式

# 儲存的檔案個數:表結構、表中的資料

# 支援行級鎖、支援表鎖 ,修改資料多,#行級鎖效率很低

# 支援事務 #開啟事務不能再分,執行不成功回滾

# 支援外來鍵 #外來鍵 主要做資料關聯 由於外來鍵的約束,刪除的時候要先刪除關聯

myi sam

如果應用是以讀操作和插入操作為主,只有很少的更新和刪除操作,並且對事務的完整性、併發性要求不高,那麼可以選擇這個儲存引擎。

#myi sam 5.5以下 預設儲存方式

# 儲存的檔案個數:表結構、表中的資料、索引

# 支援表級鎖

# 不支援行級鎖 不支援事務 不支援外來鍵

memory ['mɛməri]

將所有的資料儲存在記憶體中,在需要快速定位記錄和其他類似資料的環境下,可以提供極快的訪問。

memory的缺陷是對錶的大小有限制,雖然資料庫因為異常終止的話資料可以正常恢復,但是一旦資料庫關閉,儲存在記憶體中的資料都會丟失。

# memory 記憶體

# 儲存的檔案個數:表結構

# 優勢 :增刪改查都很快

# 劣勢 :重啟資料消失、容量有限

# 用的不多 有別的替代品

archive引擎 (了解)

擁有很好的壓縮機制,它使用zlib壓縮庫,在記錄被請求時會實時壓縮。

支援最基本的插入和查詢兩種功能。在mysql 5.5開始支援索引。

不支援事務。支援行級鎖和專用的快取區,所以可以實現高併發的插入。

適合儲存大量日誌、歷史資料。

blackhole引擎 (了解)

接受但不儲存資料,但是如果mysql啟用了二進位制日誌,sql語句被寫入日誌(並被複製到從伺服器)。

用於做日誌記錄或同步歸檔的中繼儲存。但這種應用方式會碰到很多問題,因此並不推薦。

支援事務,而且支援mvcc的行級鎖。

csv引擎 (了解)

每個表會生成乙個.csv檔案,將csv型別的檔案當做表進行處理。

把資料以逗號分隔的格式儲存在文字檔案中,這種檔案是一種普通文字檔案,每個資料行占用乙個文字行。

不支援索引,即使用該種型別的表沒有主鍵列,也不允許表中的字段為null。

#你們上家公司用什麼資料庫 : mysql

# 哪個版本是什麼 :5.6.2.1

# 都用這個版本麼 :不是都用這個版本 或 有部分用的不是這個版本

# 儲存引擎 :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語句的...