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和其它事務特性。
在建立表或修改表的時候,都可以指定需要使用的儲存引擎:
innodbbdbinnodbinnodbmvcccommit, 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...