MySQL修改默認(rèn)存儲引擎的實現(xiàn)方法
mysql存儲引擎:
MySQL服務(wù)器采用了模塊化風(fēng)格,各部分之間保持相對獨立,尤其體現(xiàn)在存儲架構(gòu)上。存儲引擎負(fù)責(zé)管理數(shù)據(jù)存儲,以及MySQL的索引管理。通過定義的API,MySQL服務(wù)器能夠與存儲引擎進行通信。目前使用最多的是MyISAM和InnoDB。InnoDB被Oracle收購后,MySQL自行開發(fā)的新存儲引擎Falcon將在MySQL6.0版本引進。
MyISAM引擎是一種非事務(wù)性的引擎,提供高速存儲和檢索,以及全文搜索能力,適合數(shù)據(jù)倉庫等查詢頻繁的應(yīng)用。MyISAM中,一個table實際保存為三個文件,.frm存儲表定義,.MYD存儲數(shù)據(jù),.MYI存儲索引。
InnoDB則是一種支持事務(wù)的引擎。所以的數(shù)據(jù)存儲在一個或者多個數(shù)據(jù)文件中,支持類似于Oracle的鎖機制。一般在OLTP應(yīng)用中使用較廣泛。如果沒有指定InnoDB配置選項,MySQL將在MySQL數(shù)據(jù)目錄下創(chuàng)建一個名為ibdata1的自動擴展數(shù)據(jù)文件,以及兩個名為ib_logfile0和ib_logfile1的日志文件。
創(chuàng)建table時可以通過engine關(guān)鍵字指定使用的存儲引擎,如果省略則使用系統(tǒng)默認(rèn)的存儲引擎:CREATE TABLE t (i INT) ENGINE = MYISAM;
查看系統(tǒng)中支持的存儲引擎類型:
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)安裝程序中只提供部分引擎的支持,如果需要使用其他的存儲引擎,需要使用源代碼加不同的參數(shù)重新編譯。其中DEFAULT表明系統(tǒng)的默認(rèn)存儲引擎,可以通過修改配置參數(shù)來變更:
default-storage-engine=MyISAM
查看某個存儲引擎的具體信息
mysql> show engine InnoDB status\G;
一般安裝系統(tǒng)默認(rèn)是INNODB
default-storage-engine=INNODB
1.可以在啟動數(shù)據(jù)庫服務(wù)器時在命令行后面加上–default-storage-engine或–default-table-type選項。
2.更靈活的方式是在隨MySQL服務(wù)器發(fā)布同時提供的MySQL客戶端時指定使用的存儲引擎。最直接的方式是在創(chuàng)建表時指定存儲引擎的類型,向下面這樣:
CREATE TABLE mytable (id int, titlechar(20)) ENGINE = INNODB
修改表的存儲引擎:
ALTER TABLE engineTest ENGINE = INNODB;
修改默認(rèn)存儲引擎:
在mysql配置文件(linux下為/etc/my.cnf),在mysqld后面增加default-storage-engine=INNODB即可。
但是如果表建立的時候是MyISAM,要更改整個數(shù)據(jù)庫表的存儲引擎,一般要一個表一個表的修改,比較繁瑣,可以采用先把數(shù)據(jù)庫導(dǎo)出,得到SQL,把MyISAM修改成INNODB,再導(dǎo)入的方式。
以上這篇MySQL修改默認(rèn)存儲引擎的實現(xiàn)方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL性能優(yōu)化之max_connections配置參數(shù)淺析
這篇文章主要介紹了MySQL性能優(yōu)化之max_connections配置參數(shù)淺析,本文著重講解了3種配置max_connections參數(shù)的方法,需要的朋友可以參考下2014-07-07MySQL中CONCAT()函數(shù)出現(xiàn)值為空的問題及解決辦法
項目中查詢用到了concat()拼接函數(shù),本文主要介紹了MySQL中CONCAT()函數(shù)出現(xiàn)值為空的問題及解決辦法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07MySQL學(xué)習(xí)筆記1:安裝和登錄(多種方法)
今天開始學(xué)習(xí)數(shù)據(jù)庫,于數(shù)據(jù)庫的大理論我就懶得寫了,些考試必備的內(nèi)容我已經(jīng)受夠了我只需要知道一點,人們整理數(shù)據(jù)和文件的行為在不斷進化,以至現(xiàn)在使用數(shù)據(jù)庫來更好的管理2013-01-01mysql中數(shù)據(jù)統(tǒng)計的技巧備忘錄
mysql是常用數(shù)據(jù)庫,對于數(shù)字操作相關(guān)的東西相當(dāng)方便,這篇文章主要給大家介紹了關(guān)于mysql中數(shù)據(jù)統(tǒng)計技巧的相關(guān)資料,非常具有實用價值,需要的朋友可以參考下2018-05-05MYSQL?數(shù)據(jù)庫時間字段?INT,TIMESTAMP,DATETIME?性能效率的比較介紹
這篇文章主要介紹了MYSQL數(shù)據(jù)庫時間字段INT,TIMESTAMP,DATETIME性能效率的比較介紹,文章通過圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09