MySQL(一)儲存引擎

2021-09-26 15:36:18 字數 2638 閱讀 7104

mysql資料庫作為一款開源免費的關係型資料庫受到了國內很多開發人員歡迎,下面想把mysql資料庫的一些知識點紀錄下來,對於自己也是乙個再學習再記憶的過程;

外掛程式式的儲存引擎是mysql資料庫最重要的特點之一,它支援了myissam,innodb,bdb,memory,merge等多種儲存引擎,開發人員可以根據需要來選擇不同的儲存引擎,從而使應用達到事半功倍的效果;

檢視當前預設儲存引擎:

show variables like "%engine%"
檢視mysql支援哪些引擎:

show engines
修改預設儲存引擎:

在配置檔案my.cnf中的 [mysqld] 下面加入default-storage-engine=innodb 一句,儲存。

下面說一下mysql資料庫經常使用的幾種儲存引擎:

comment:對各個儲存引擎做了簡要功能定義

1.myissam儲存引擎是mysql資料庫預設的儲存引擎,

2.不支援事務

3.不支援外來鍵,

優勢:訪問速度快,對事物完整性沒有要求或者以insertselect為主的應用基本上都可以使用這個引擎來建立表

4.myissaml儲存引擎在磁碟上儲存成3個不同的檔案。檔名和表明一致,但是這三個檔案的字尾名不同:

.frm(儲存表定義)

.myd(mydata,儲存資料)

.myi(myindex,儲存索引)

資料檔案和索引檔案可以放置在不同的目錄中,平均分布io,訪問速度更快。

指定索引檔案和資料檔案的儲存路徑可以在建立表的時候使用 data directory 和index directory語句來指定,檔案路徑是絕對路

徑。5.使用myissam儲存引擎的表支援三種不同的儲存格式:

靜態表(固定長度)

動態表

壓縮表

這裡主要說一下靜態表,因為靜態表是myissam預設的儲存格式,他有乙個比較特殊的地方,現在如果你向表中儲存乙個「   ab  」

這種前後帶空格形式的資料的時候,它會將資料前後的空格去掉。可能導致資料失真。靜態表的優勢就是儲存速度快,容易快取,出現故障後可以快速恢復。

inodb儲存引擎支援事務,相比較myissam儲存引擎而言,他的insert能力會差點,而且也會占用更多的磁碟空間來儲存資料和索引。

1.支援自動增長列

innodb的自動增長列必須是索引,如果是組合索引,自動增長列也必須是組合索引的第一列。可以使用

alter table 表名 auto_increment = n
來強制設定自動增長列的初始值,預設從1開始,注意:強制的預設值儲存在記憶體如果在使用預設值之前資料庫宕機,該默

認值會丟失,重新恢復服務之後再次設定就ok了

2.innodb能夠支援外來鍵:

這個特點是mysql資料庫所有的儲存引擎中innodb獨有的。建立外來鍵的時候父表必須有對應的索引,字表在建立外來鍵的時候也

會自動建立對應的索引

對有主外來鍵關係的表進行操作的時候一定需要注意謹慎,錯誤的操作可能會導致資料丟失。

如果某個表被其他的表新增了外來鍵參照,那麼這個表對應的索引或者對應的逐漸無法被刪除。

我們可以使用下面的命令來關閉外來鍵約束檢查:

set foreign_key_checks =0
執行下面的操作命令開啟外來鍵約束檢查:

set foreign_key_checks = 1
執行下面的命令可以檢視外來鍵資訊:

show create table 或者 show table status
此儲存引擎使用的是存在於記憶體中的內容來建立表,這種表的訪問速度極快,因為是基於記憶體的嘛。但是這是由於這一點,它的

資料也是非常的不安全,一但服務掛掉了,那麼資料就會丟失。另外此儲存引擎在使用的時候還需要考慮資料量的大小,如果數

據不需要使用了需要對這些資料進行清除釋放記憶體。

myissam:

適用於有大量的select 和insert操作,對於事務的完整性和併發性沒有很高的要求的情況

innodb:

適用於有大量的update和delete操作,對事務的完整性和併發場景下資料的一致性有要求的情況

memory:

資料儲存在記憶體上,對訪問速度要求很高的情況下可以使用,但是資料容易丟失。

mysql儲存引擎 mysql儲存引擎簡介

精品推薦 什麼是儲存引擎 mysql儲存引擎是資料庫如何儲存資料 怎樣建立索引以及如何查詢更新資料等技術的實現方法,資料通過使用不同的技術儲存在檔案中,使用不同的儲存機制 索引方式來提供不同的功能。在mysql這種關係型資料中心來說,資料是以表的方式來儲存的,因此,簡單點來說,儲存引擎就是儲存和操作...

mysql個儲存引擎 MySQL儲存引擎

mysql資料庫的體系架構如下圖所示 從上圖中可以看出,mysql主要分為以下幾個元件 連線池元件 管理服務和工具元件 sql介面元件 分析器元件 優化器元件 緩衝元件 外掛程式式儲存引擎 物理檔案 儲存引擎 其實就是指定表如何儲存資料,如何為儲存的資料建立索引以及如何更新 查詢資料等技術實現的方法...

mysql儲存引擎模式 mysql儲存引擎

mysql資料庫的體系架構如下圖所示 從上圖中可以看出,mysql主要分為以下幾個元件 連線池元件 管理服務和工具元件 sql介面元件 分析器元件 優化器元件 緩衝元件 外掛程式式儲存引擎 物理檔案 一 儲存引擎 儲存引擎 其實就是指定 表 如何儲存資料,如何為儲存的資料 建立索引以及 如何更新,查...