MySQL基礎 如何選擇儲存引擎

2021-08-04 16:05:48 字數 1812 閱讀 9566

建立索引的目的是加快對錶中記錄的查詢或排序,索引也並非越多越好,因為建立索引是要付出代價的:增加了資料庫的儲存空間,在插入和修改資料時要花費較多的時間維護索引。

在設計表或索引時,常出現以下幾個問題:

少建索引或不建索引。這個問題最突出,建議建表時 dba 可以一起協助把關。

索引濫用。濫用索引將導致寫請求變慢,拖慢整體資料庫的響應速度(5.5 以下的 mysql 只能用到乙個索引)。

從不考慮聯合索引。實際上聯合索引的效率往往要比單列索引的效率更高。

非最優列選擇。低選擇性的字段不適合建單列索引,如 status 型別的字段。

1.檢視儲存引擎

分析:從圖中可以看出,mysql支援多種儲存引擎,而預設的儲存引擎是innodb。

分析:從上圖可以看出student表的儲存引擎是innodb

2.myisam

(1)定義

(2)myisam的表支援3中不同的儲存格式,分別是靜態(固定長度)表、動態表、壓縮表,其中,靜態表是預設的儲存格式。

(3)特點

(4)適用場景

3.innodb

(1)定義

innodb是乙個健壯的事務型儲存引擎,這種儲存引擎已經被很多網際網路公司使用,為使用者操作非常大的資料儲存提供了乙個強大的解決方案。

(2)特點

(3)適用場合

4.memory

(1)定義

使用mysql memory儲存引擎的出發點是速度。為得到最快的響應時間,採用的邏輯儲存介質是系統記憶體。

(2)特點

(3)使用場景

5.merge

(1)定義

(2)特點

(3)適用場景

6.archive功 能

myisam

memory

innodb

archive

儲存限制

256tb

ram64tb

none

支援事物

nono

yesno

支援b樹索引

yesyes

yesyes

支援全文索引

yesno

nono

支援數索引

yesyes

yesno

支援雜湊索引

noyes

nono

支援資料快取

non/a

yesno

支援外來鍵

nono

yesno

鎖機制表鎖

表鎖行鎖

表鎖1.myisam

2.innodb

3.mysql為什麼使用b+樹作為索引?

(1)為什麼不用hash表儲存?

(2)如何選擇資料結構?

4.聚集索引

2.mysql索引原理及慢查詢優化——美團點評技術部落格

3.mysql索引背後的資料結構及演算法原理

4.b+樹與mysql儲存引擎

5.mysql引起索引失效的原因

如何選擇 MySQL 儲存引擎

不同的儲存引擎都有各自的特點,以適應不同的需求,如表所示。為了做出選擇,首先要考慮每乙個儲存引擎提供了哪些不同的功能。功能mylsam memory innodb archive 儲存限制 256tb ram64tb none 支援事務 nono yesno 支援全文索引 yesno nono 支援...

mysql儲存引擎選擇

常用的儲存引擎為myisam和innodb,其它引擎有ndb cluster merge memory等等。myisam是mysql的預設搜尋引擎,其中的每乙個表都被存放為三個檔案 frm表結構資訊 myd資料檔案 myi索引檔案。myisam支援b tree索引 r tree索引和full tex...

MySQL儲存引擎 選擇

mysql有多種儲存引擎 myisam innodb merge memory heap bdb berkeleydb example federated archive csv blackhole。mysql支援數個儲存引擎作為對不同表的型別的處理器。mysql儲存引擎包括處理事務安全表的引擎和處...