深入分析資料庫儲存引擎

2021-08-10 22:50:21 字數 2133 閱讀 4667

儲存引擎

1:概述

1:表處理器

mysql提過了乙個抽象層,允許不同的儲存引擎使用相同的api對錶進行訪問,這一介面稱之為表處理器,該介面通過handler的抽象類來實現,該處理器提供了一些課實現基本儲存的方法,如開啟關閉表,按照鍵進行檢索,儲存記錄及刪除記錄,

2:儲存引擎

1:最近引進儲存引擎這乙個術語,在現用術語中,儲存引擎指的是實際儲存和檢索資料的**,而表處理器指的是儲存引擎和mysql優化器之間的介面

2:簡而言之,儲存引擎就是指表的型別,儲存引擎決定了表在計算機中的儲存方式

2:mysql支援的儲存引擎

使用命令查詢: show engines\g;

從查詢的結果中可以看出,mysql支援的儲存引擎包括myisam,memory,innodb,archive和mrg_myisam

1:innodb儲存引擎(預設,修改,優缺點)

1:預設儲存引擎

在建立表時,若沒有指定儲存引擎,表的儲存引擎將為預設的儲存引擎

2:檢視預設儲存引擎

3:修改預設的儲存引擎

在mysql的安裝檔案找到my.ini檔案(該配置檔案中有埠號,編碼集),進行修改

default-storage-engine=innodb更改為default-storage-engine=myisam

4:innodb儲存引擎的優勢

1:innodb給mysql的表提供了事務(其它引擎無法比擬),回滾,崩潰修復能力和多版本併發控制的事務安全,

2:並且還是唯一的支援外來鍵約束的表引擎;

3:innodb儲存引擎支援自動增長列auto_increment.自動增長的列不能為空,mysql中規定自增列必須為主鍵,

5:innodb儲存引擎的缺點

1:批量插入資料速度慢,讀寫效率偏低

2:占用資料空間相對比較大

2:myisam儲存引擎

1:概述

1:myisam儲存引擎是mysql中常見的儲存引擎,是基於isam儲存引擎發展起來的

2:myisam儲存引擎的表儲存成三個檔案,檔案的名字與表相同,副檔名包括:frm,myd,myi

2:演示

3:優缺點

3:myisam占用空間小,處理速度快,缺點是不支援事務的完整性和併發性

3:memory儲存引擎

1:概述

1:mymory儲存去其使用儲存在記憶體中的內容來建立表,而且所有的資料也存放在記憶體中,這些特性與其他引擎不同

2:每個基於memory儲存引擎的表實際對應乙個磁碟檔案,該檔案的檔名與表名相同,型別是frm型別,該檔案中只儲存表的結構,而其資料檔案都是儲存在記憶體中

2:優勢

1:儲存在記憶體中的資料,其資料的處理效率將大幅提過(避免了io讀寫),提高了整個表的處理效率

2:mymory儲存引擎預設使用的雜湊hash索引,其速度要比使用b型樹(btree)索引快

3:缺點

1:因為memory表的所有資料都是儲存在記憶體上的,如果記憶體出現異常將會影響到資料的完整性,再者,如果重啟伺服器或者關機,表中的所有資料將消失

2:memory表的大小是受到限制的max_rows可以在建立表時指定;max_heap_table_size的大小預設是16mb,可以進行擴大.

資料庫事務深入分析

1 原子性 atomic 2 一致性 consistent 一致性要求事務執行完成後,將資料庫從乙個狀態轉變為另乙個狀態,他是一種以一致性規則為基礎的邏輯屬性,例如在轉賬操作中,個賬戶金額必須平衡 3 隔離性 insulation 乙個事務的執行不能被其他事務所干擾。即乙個事務內部的操作及使用的資料...

基於Mysql儲存引擎的深入分析

mysql有很多種儲存引擎,針對不同的應用,可以為每張表選擇合適的儲存引擎,這樣有助於提公升mysql效能。建立新聞表news 複製 如下 create table sandbox news id int not null auto increment name varchar 45 null co...

MySQL 資料庫事務深入分析

推薦閱讀 吊打面試官!mysql靈魂100問,你能答出多少?只有innodb引擎支援事務,下邊的內容均以innodb引擎為預設條件 乙個事務讀取了另乙個事務未提交的資料 乙個事務對同一資料的讀取結果前後不一致。兩次讀取中間被其他事務修改了 幻讀是指事務讀取某個範圍的資料時,因為其他事務的操作導致前後...