mysql儲存引擎

2022-07-26 03:24:16 字數 2904 閱讀 3531

儲存引擎概念。

mysql資料庫中使用各種不同的技術儲存資料到檔案系統中,每一種技術都使用不同的儲存機制、

索引技巧,鎖定水平並最終提供不同的功能和能力,這些不同的技術以及配套的功能在mysql中稱為

儲存引擎。

儲存引擎就是mysql將資料儲存在檔案系統中的儲存方式或者儲存格式。

目前mysql常用的兩種儲存引擎:mylsam、innodb mysql儲存引擎是mysql資料庫伺服器中

的元件,負責為資料庫執行實際的資料l/o操作,使用特殊儲存引擎的主要優點之一在於僅需提供特殊應

用所需的特性,資料庫中的系統開銷較小,具有更有效和更高的資料庫效能。

mysql系統中,儲存引擎處於檔案系統之上,在資料儲存到資料檔案之前會傳輸到儲存引擎,之後

按照各個儲存引擎的儲存格式進行檔案的物理儲存。

mysql日誌種類:

>錯誤日誌:程式執行,啟動類的故障。

>二進位制日誌:儲存資料庫變更語句》中繼日誌:快取二進位制日誌資料。

>查詢日誌:記錄查詢語句的。

>慢查詢日誌:記錄超時的查詢語句。

>事務日誌:

一、myisam儲存引擎。

1、myisam概述。

myisam儲存引擎是mysql關係資料庫系統5.5版本之前預設的儲存引擎,前身是isam。

isam是乙個定義明確且經歷時間考驗的資料**管理方法,在設計之時就考慮到資料庫被查詢的次數

要遠大於更新的次數。

i5am的特點:isam執行讀取操作的速度很快,而且占用不大量的記憶體和儲存資源,它不支援事務處理,

不能夠容錯。

myisam管理非事務表,是isam的擴充套件格式,提供isam裡所沒有的索引和字段管理的大量功能。

mylsam.使用一種表鎖定的機制,以優化多個併發的讀寫操作。mylsam提供高速儲存和檢索,以及全

文搜素能力,受到web開發的青睞。

2、myisam的特點。

(1)不支援事務。

(2)表級鎖定形式,資料在更新時鎖定整個表。

(3)資料庫在讀寫過程中相互阻塞(會在資料寫入的過程中阻塞使用者資料的讀取,也會在資料讀取的過程中

阻塞使用者的資料寫入)。

(4)可以通過key buffer size來設定快取索引,提高訪問效能,減少磁碟i0的壓力,但快取只會快取索引文

件,不會快取資料。

(5)採用myisam儲存引擎資料單獨寫入或讀取,速度過程較快而且占用資源相對較少。

(6)myisam儲存引擎不支援外來鍵約束,只支援全文索引(7)每個mmsam在磁碟上儲存成三個檔案,每

乙個檔案的名字以表的名字開始,副檔名指出檔案型別。

.frm檔案儲存表定義

myd檔案儲存資料(mydata)

.myi檔案儲存索引檔案(myindex)

3、myisam使用的生產場景

(1)公司業務不需要事務支援。

(2)一般單方讀取資料比較多的業務,或單方面寫入資料比較多的業務,如:www.blog,資訊資料庫,

使用者資料庫,商品庫等業務,myisam儲存引擎資料讀寫都比較頻繁的場景不適合。

(3)對資料業務一致性要求不是非常高的業務。

(4)使用讀寫併發訪問相對較低的業務

(5)資料修改相對較少的業務。

(6)伺服器硬體資源相對比較差

二、lnnodb介紹。

1、lnnodb的特點

(1)支援事務:支援4個事務隔離級別。

(2)行級鎖定,但是全表掃瞄仍然會是表級鎖定

(3)讀寫阻塞與事務隔離級別相關。

(4)具有非常高效的快取特性:能快取索引,也能快取資料。

(5)表與主鍵以簇的方式儲存。

(6)支援分割槽、表空間,類似oracle敬據庫。

(7)支援處鍵約束,5.5以前不支援全文索引,5.5版本以後支援全文索引

(8)對硬體資源要求比較高

2、lnnodb使用的生產場景。

(1)業務需要事務的支援

(2)行級鎖定對高併發有很好的適應能力,但需要確保查詢是通過索引來完成。

(3)業務資料更新較為頻繁的場景,如:論壇,微博

(4)業務資料一致性要求較高,如:銀行業務。

(5)硬體裝置記憶體較大,利用lnnodb.較好的快取能力來提高記憶體利用率,減少磁碟i0的壓力。

三、企業選擇儲存引擎的依據。

1、需要考慮每個儲存引掌提供了哪些不同的核心功能及應用場景。

2、支援的字段和資料型別,所有引擎都支援通用的資料型別,但不是所有引擎都支援其他的字段型別,如二進位制物件。

3、鎖定型別:不同的儲存引擎支援不同級別的鎖定

表鎖定:mylsam、memory

行鎖定:lnnodb。

頁鎖定:bdb

4、索引的支援。

建立索引在搜尋和恢復資料庫中的資料的時候能顯著提高效能

不同的儲存引掌提供不同的製作索引的技術

有些儲存引擎根本不支援索引

5、事務處理的支援

事務處理功能通過提供在向表中更新和插入資訊期間的高可靠性

可根據企業業務是否要支援事務選擇儲存引擎

檢視資料庫可配置的儲存引擎

show engines \g

檢視表正在使用的儲存引擎

(1)show table status from 庫名 where name='表名'\g;

(2)show create table 表名;

配置儲存引擎為所選擇的型別

(1)alter table 表名 engine=引擎;

(2)修改/etc/my.cnf的default-storage-engine為引擎

(3)create table 建表時使用engine=引擎

(4)mysql_convert_table_format --user=root --password=密碼 --sock=檔案路徑 mysql.sock --engine=引擎 庫名 表名;

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

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

mysql個儲存引擎 MySQL儲存引擎

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

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

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