mysql存儲(chǔ)引擎:
MySQL服務(wù)器采用了模塊化風(fēng)格,各部分之間保持相對(duì)獨(dú)立,尤其體現(xiàn)在存儲(chǔ)架構(gòu)上。存儲(chǔ)引擎負(fù)責(zé)管理數(shù)據(jù)存儲(chǔ),以及MySQL的索引管理。通過定義的API,MySQL服務(wù)器能夠與存儲(chǔ)引擎進(jìn)行通信。目前使用最多的是MyISAM和InnoDB。InnoDB被Oracle收購后,MySQL自行開發(fā)的新存儲(chǔ)引擎Falcon將在MySQL6.0版本引進(jìn)。
MyISAM引擎是一種非事務(wù)性的引擎,提供高速存儲(chǔ)和檢索,以及全文搜索能力,適合數(shù)據(jù)倉庫等查詢頻繁的應(yīng)用。MyISAM中,一個(gè)table實(shí)際保存為三個(gè)文件,.frm存儲(chǔ)表定義,.MYD存儲(chǔ)數(shù)據(jù),.MYI存儲(chǔ)索引。
InnoDB則是一種支持事務(wù)的引擎。所以的數(shù)據(jù)存儲(chǔ)在一個(gè)或者多個(gè)數(shù)據(jù)文件中,支持類似于Oracle的鎖機(jī)制。一般在OLTP應(yīng)用中使用較廣泛。如果沒有指定InnoDB配置選項(xiàng),MySQL將在MySQL數(shù)據(jù)目錄下創(chuàng)建一個(gè)名為ibdata1的自動(dòng)擴(kuò)展數(shù)據(jù)文件,以及兩個(gè)名為ib_logfile0和ib_logfile1的日志文件。
創(chuàng)建table時(shí)可以通過engine關(guān)鍵字指定使用的存儲(chǔ)引擎,如果省略則使用系統(tǒng)默認(rèn)的存儲(chǔ)引擎:CREATE TABLE t (i INT) ENGINE = MYISAM;
查看系統(tǒng)中支持的存儲(chǔ)引擎類型:
mysql> show engines;| Engine | Support | Comment || MyISAM | YES | Default engine as of MySQL 3.23 with greatperformance |
| MEMORY | YES | Hash based, stored in memory, useful for temporarytables |
| InnoDB | DEFAULT | Supports transactions, row-level locking, andforeign keys |
| BerkeleyDB | NO | Supports transactions and page-level locking|
| BLACKHOLE | NO | /dev/null storage engine (anything you write toit disappears) |
| EXAMPLE | NO | Example storage engine |
| ARCHIVE | YES | Archive storage engine |
| CSV | NO | CSV storage engine |
| ndbcluster | NO | Clustered, fault-tolerant, memory-based tables|
| FEDERATED | NO | Federated MySQL storage engine |
| MRG_MYISAM | YES | Collection of identical MyISAM tables |
| ISAM | NO | Obsolete storage engine |12 rows in set (0.00 sec)
標(biāo)準(zhǔn)安裝程序中只提供部分引擎的支持,如果需要使用其他的存儲(chǔ)引擎,需要使用源代碼加不同的參數(shù)重新編譯。其中DEFAULT表明系統(tǒng)的默認(rèn)存儲(chǔ)引擎,可以通過修改配置參數(shù)來變更:
default-storage-engine=MyISAM
查看某個(gè)存儲(chǔ)引擎的具體信息
mysql> show engine InnoDB status\G;
一般安裝系統(tǒng)默認(rèn)是INNODB
default-storage-engine=INNODB
1.可以在啟動(dòng)數(shù)據(jù)庫服務(wù)器時(shí)在命令行后面加上–default-storage-engine或–default-table-type選項(xiàng)。
2.更靈活的方式是在隨MySQL服務(wù)器發(fā)布同時(shí)提供的MySQL客戶端時(shí)指定使用的存儲(chǔ)引擎。最直接的方式是在創(chuàng)建表時(shí)指定存儲(chǔ)引擎的類型,向下面這樣:
CREATE TABLE mytable (id int, titlechar(20)) ENGINE = INNODB
修改表的存儲(chǔ)引擎:
ALTER TABLE engineTest ENGINE = INNODB;
修改默認(rèn)存儲(chǔ)引擎:
在mysql配置文件(linux下為/etc/my.cnf),在mysqld后面增加default-storage-engine=INNODB即可。
但是如果表建立的時(shí)候是MyISAM,要更改整個(gè)數(shù)據(jù)庫表的存儲(chǔ)引擎,一般要一個(gè)表一個(gè)表的修改,比較繁瑣,可以采用先把數(shù)據(jù)庫導(dǎo)出,得到SQL,把MyISAM修改成INNODB,再導(dǎo)入的方式。
以上這篇MySQL修改默認(rèn)存儲(chǔ)引擎的實(shí)現(xiàn)方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- 聊聊MySQL中的存儲(chǔ)引擎
- 簡(jiǎn)述MySQL InnoDB存儲(chǔ)引擎
- 簡(jiǎn)單了解MySQL存儲(chǔ)引擎
- MySql 存儲(chǔ)引擎和索引相關(guān)知識(shí)總結(jié)
- MySQL MyISAM默認(rèn)存儲(chǔ)引擎實(shí)現(xiàn)原理
- MySQL 學(xué)習(xí)總結(jié) 之 初步了解 InnoDB 存儲(chǔ)引擎的架構(gòu)設(shè)計(jì)
- 淺談MySQL中四種常用存儲(chǔ)引擎
- MySQL學(xué)習(xí)(七):Innodb存儲(chǔ)引擎索引的實(shí)現(xiàn)原理詳解
- MySQL存儲(chǔ)引擎InnoDB的配置與使用的講解
- MySQL存儲(chǔ)引擎MyISAM與InnoDB區(qū)別總結(jié)整理
- MySQL常用存儲(chǔ)引擎功能與用法詳解
- MySQL 選擇合適的存儲(chǔ)引擎