MySQL儲存引擎及InnoDB併發控制介紹

2021-09-20 20:27:19 字數 3830 閱讀 1326

mysql儲存引擎採用了可插拔的結構,即使用者可以根據自己的需要來選擇不同的儲存引擎。

下表是mysql不同的儲存引擎的不同的特性:

feature

myisam

bdb

memory

innodb

archive

ndb

storage limits

256tb

no

yes

64tb

no

384eb

[4]transactions

no

yes

no

yes

no

yes

locking granularity

table

page

table

row

row

row

mvcc (snapshot read)

no

no

no

yes

yes

no

geospatial support

yes

yes [1] no

yes [1]

yes[1]

yes[1]

b-tree indexes

yes

yes

yes

yes

no

yes

hash indexes

no

no

yes

no

no

yes

full-text search indexes

yes

no

no

no

no

no

clustered indexes

no

yes

no

yes

no

no

data caches

no

yes

n/a

yes

no

yes

index caches

yes

yes

n/a

yes

no

yes

compressed data

yes

no

no

no

yes

no

encrypted data

[2]yes

yes

yes

yes

yes

yes

cluster database support

no

no

no

no

no

yes

replication support

[3]yes

yes

yes

yes

yes

yes

foreign key support

no

no

no

yes

no

no

backup / point-in-time recovery

[3]yes

yes

yes

yes

yes

yes

query cache support

yes

yes

yes

yes

yes

yes

update statistics for data dictionary

yes

yes

yes

yes

yes

yes

下面列舉幾個常用的儲存引擎:

l         

myisam:mysql預設的儲存引擎,它主要用於大多數的web、資料倉儲和其它應用中。可以通過資料庫配置檔案中的storage_engine選項來改變預設的儲存引擎。

l         

innodb:主要用於事務處理應用,並且支援事務的acid特性和外來鍵。

l         

bdb:支援commit,rollback和其它事務特性。

在建立表或修改表的時候,都可以指定需要使用的儲存引擎:

innodbbdbinnodb

innodbmvcccommit, rollbacksvepoints

bdbcommitrollback

mysqlinnodb

innodbinnodbinnodbmyisam

innodbrowid

innodb

l         

s l         

x t1t

l         

t2tst1t2ts

l         

t2tx

t1txt

innodb

l         

istts

l         

ixttx

l         

sis

l         

xix

1,0 x

ix s

is x

00

0

0 ix

0

1

0

1 s

0

0

1

1 is

0

1

1

1

innodbrepeatable readinnodbsql

innodbselect

repeatable read

drop table alter tabledrop tablemysqlalter tablemysql

next-key locking

innodbnext-key lockingsx

innodbgaprsxr

innodb

innodb6-byte7-byte(roll pointer)undoundo

innodbundo

undoinnodb

undo

mysql引擎之MyISAM與InnoDB

在mysql中,支援幾種引擎,其中包括myisam與innodb,兩者皆採用b tree的資料結構,樹 鍊錶 myisam 索引和資料是分開的,也叫非聚集索引,不管是以自增id作為索引還是以其他作為索引,最下層的葉子節點存放的是乙個實體地址,通過這個實體地址找到需要的資料 索引和資料是分開的,也叫聚...

mysql修改資料庫的儲存引擎 InnoDB

檢視當前的儲存引擎 基本的差別 myisam型別不支援事務處理等高階處理,而innodb型別支援。myisam型別的表強調的是效能,其執行數度比innodb型別更快,但是不提供事務支援,而innodb提供事務支援以及外部鍵等高階資料庫功能。然後,一般我們的專案中設計的資料表是有外來鍵的.修改儲存引擎...

mysql修改資料庫的儲存引擎 InnoDB

目前例子是把引擎myisam修改為innodb 檢視當前資料庫的所支援的資料庫引擎以及預設資料庫引擎 資料庫支援的引擎和預設資料庫引擎 show engines 更改方式1 修改配置檔案my.cnf 開啟my.cnf,在 mysqld 最後新增為上default storage engine inn...