怎么查看mysql引擎,查看mysql中支持的儲(chǔ)存引擎語(yǔ)句

查看MySQL 支持的存儲(chǔ)引擎

查看MySQL 支持的存儲(chǔ)引擎有三種語(yǔ)句格式:

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),錦州企業(yè)網(wǎng)站建設(shè),錦州品牌網(wǎng)站建設(shè),網(wǎng)站定制,錦州網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,錦州網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

格式一:SHOW ENGINES;

格式二:SHOW ENGINES\g

格式三:SHOW ENGINES\G

這三種格式區(qū)別僅在于使用的“結(jié)束符”不同,這會(huì)導(dǎo)致“命令執(zhí)行結(jié)果的顯示”不同。其中“\G”的顯示效果最好,對(duì)所支持的各種存儲(chǔ)引擎會(huì)從“引擎名稱”、“是否支持該引擎”、“關(guān)于該引擎的說(shuō)明、評(píng)論”、“是不是支持事務(wù)”、“該引擎支持的分布式是否支持XA規(guī)范”、“是否支持事務(wù)處理中的保存點(diǎn)”等方面逐個(gè)地、詳細(xì)地顯示出來(lái);使用“;”和“\g”作用相同,僅簡(jiǎn)單顯示各個(gè)存儲(chǔ)引擎的信息。

如何查看MySQL的當(dāng)前存儲(chǔ)引擎?

一般情況下,mysql會(huì)默認(rèn)提供多種存儲(chǔ)引擎,你可以通過(guò)下面的查看:

看你的mysql現(xiàn)在已提供什么存儲(chǔ)引擎:

mysql show engines;

看你的mysql當(dāng)前默認(rèn)的存儲(chǔ)引擎:

mysql show variables like '%storage_engine%';

你要看某個(gè)表用了什么引擎(在顯示結(jié)果里參數(shù)engine后面的就表示該表當(dāng)前用的存儲(chǔ)引擎):

mysql show create table 表名;

如何修改MySQL的默認(rèn)引擎模式

更改 Mysql 默認(rèn)引擎為 InnoDB步驟如下:

Mysql默認(rèn)是關(guān)閉InnoDB存儲(chǔ)引擎的使用的,將InnoDB設(shè)置為默認(rèn)的引擎如下。

1. 查看Mysql存儲(chǔ)引擎情況: mysqlshow engines InnoDB | YES,說(shuō)明此Mysql數(shù)據(jù)庫(kù)服務(wù)器支持InnoDB引擎。

2. 設(shè)置InnoDB為默認(rèn)引擎:在配置文件my.ini中的 [mysqld] 下面加入default-storage-engine=INNODB

3. 重啟Mysql服務(wù)器

4. 登錄Mysql數(shù)據(jù)庫(kù),mysqlshow engines 如果出現(xiàn) InnoDB |DEFAULT,則表示設(shè)置InnoDB為默認(rèn)引擎成功。

如何查看MySQL的當(dāng)前存儲(chǔ)引擎

查看當(dāng)前表的默認(rèn)存儲(chǔ)引擎,可以使用如下圖所示的命令。查詢之后,我們可以查看筆者這里這個(gè)表默認(rèn)的存儲(chǔ)引擎是:InnoDB.

如果我們想知道當(dāng)前MySQL提供什么存儲(chǔ)引擎,可以使用如下圖所示的命令。通過(guò)查詢我們知道,筆者所安裝的MySQL提供了9種不同的存儲(chǔ)引擎。

如果我們想要知道當(dāng)前數(shù)據(jù)庫(kù)默認(rèn)的是什么存儲(chǔ)引擎,可以使用如下圖所示的命令。通過(guò)查詢我們知道,筆者所安裝的MySQL默認(rèn)的存儲(chǔ)引擎是InnoDB。

給一個(gè)新建的表指定特定的存儲(chǔ)引擎,比如我們要新建一個(gè)“t2”表,我們希望這個(gè)表的存儲(chǔ)引擎是MyISAM,具體操作如下圖所示。

修改一個(gè)已經(jīng)存在表的存儲(chǔ)引擎,假設(shè)這里我們想要修改“t1”表的存儲(chǔ)引擎。我們就可以按下圖所示的命令來(lái)操作。執(zhí)行之后,我們的t1表的存儲(chǔ)引擎,就從默認(rèn)的InnoDB變?yōu)榱薈SV.

Mysql中什么是存儲(chǔ)引擎

什么是存儲(chǔ)引擎?

關(guān)系數(shù)據(jù)庫(kù)表是用于存儲(chǔ)和組織信息的數(shù)據(jù)結(jié)構(gòu),可以將表理解為由行和列組成的表格,類似于Excel的電子表格的形式。有的表簡(jiǎn)單,有的表復(fù)雜,有的表根本不用來(lái)存儲(chǔ)任何長(zhǎng)期的數(shù)據(jù),有的表讀取時(shí)非常快,但是插入數(shù)據(jù)時(shí)去很差;而我們?cè)趯?shí)際開(kāi)發(fā)過(guò)程中,就可能需要各種各樣的表,不同的表,就意味著存儲(chǔ)不同類型的數(shù)據(jù),數(shù)據(jù)的處理上也會(huì)存在著差異,那么。對(duì)于MySQL來(lái)說(shuō),它提供了很多種類型的存儲(chǔ)引擎,我們可以根據(jù)對(duì)數(shù)據(jù)處理的需求,選擇不同的存儲(chǔ)引擎,從而最大限度的利用MySQL強(qiáng)大的功能。這篇博文將總結(jié)和分析各個(gè)引擎的特點(diǎn),以及適用場(chǎng)合,并不會(huì)糾結(jié)于更深層次的東西。我的學(xué)習(xí)方法是先學(xué)會(huì)用,懂得怎么用,再去知道到底是如何能用的。下面就對(duì)MySQL支持的存儲(chǔ)引擎進(jìn)行簡(jiǎn)單的介紹。

MyISAM

在mysql客戶端中,使用以下命令可以查看MySQL支持的引擎。

復(fù)制代碼代碼如下:

show engines;

MyISAM表是獨(dú)立于操作系統(tǒng)的,這說(shuō)明可以輕松地將其從Windows服務(wù)器移植到Linux服務(wù)器;每當(dāng)我們建立一個(gè)MyISAM引擎的表時(shí),就會(huì)在本地磁盤上建立三個(gè)文件,文件名就是表明。例如,我建立了一個(gè)MyISAM引擎的tb_Demo表,那么就會(huì)生成以下三個(gè)文件:

1.tb_demo.frm,存儲(chǔ)表定義;

2.tb_demo.MYD,存儲(chǔ)數(shù)據(jù);

3.tb_demo.MYI,存儲(chǔ)索引。

MyISAM表無(wú)法處理事務(wù),這就意味著有事務(wù)處理需求的表,不能使用MyISAM存儲(chǔ)引擎。MyISAM存儲(chǔ)引擎特別適合在以下幾種情況下使用:

1.選擇密集型的表。MyISAM存儲(chǔ)引擎在篩選大量數(shù)據(jù)時(shí)非常迅速,這是它最突出的優(yōu)點(diǎn)。

2.插入密集型的表。MyISAM的并發(fā)插入特性允許同時(shí)選擇和插入數(shù)據(jù)。例如:MyISAM存儲(chǔ)引擎很適合管理郵件或Web服務(wù)器日志數(shù)據(jù)。

InnoDB

InnoDB是一個(gè)健壯的事務(wù)型存儲(chǔ)引擎,這種存儲(chǔ)引擎已經(jīng)被很多互聯(lián)網(wǎng)公司使用,為用戶操作非常大的數(shù)據(jù)存儲(chǔ)提供了一個(gè)強(qiáng)大的解決方案。我的電腦上安裝的MySQL 5.6.13版,InnoDB就是作為默認(rèn)的存儲(chǔ)引擎。InnoDB還引入了行級(jí)鎖定和外鍵約束,在以下場(chǎng)合下,使用InnoDB是最理想的選擇:

1.更新密集的表。InnoDB存儲(chǔ)引擎特別適合處理多重并發(fā)的更新請(qǐng)求。

2.事務(wù)。InnoDB存儲(chǔ)引擎是支持事務(wù)的標(biāo)準(zhǔn)MySQL存儲(chǔ)引擎。

3.自動(dòng)災(zāi)難恢復(fù)。與其它存儲(chǔ)引擎不同,InnoDB表能夠自動(dòng)從災(zāi)難中恢復(fù)。

4.外鍵約束。MySQL支持外鍵的存儲(chǔ)引擎只有InnoDB。

5.支持自動(dòng)增加列AUTO_INCREMENT屬性。

一般來(lái)說(shuō),如果需要事務(wù)支持,并且有較高的并發(fā)讀取頻率,InnoDB是不錯(cuò)的選擇。

MEMORY

使用MySQL Memory存儲(chǔ)引擎的出發(fā)點(diǎn)是速度。為得到最快的響應(yīng)時(shí)間,采用的邏輯存儲(chǔ)介質(zhì)是系統(tǒng)內(nèi)存。雖然在內(nèi)存中存儲(chǔ)表數(shù)據(jù)確實(shí)會(huì)提供很高的性能,但當(dāng)mysqld守護(hù)進(jìn)程崩潰時(shí),所有的Memory數(shù)據(jù)都會(huì)丟失。獲得速度的同時(shí)也帶來(lái)了一些缺陷。它要求存儲(chǔ)在Memory數(shù)據(jù)表里的數(shù)據(jù)使用的是長(zhǎng)度不變的格式,這意味著不能使用BLOB和TEXT這樣的長(zhǎng)度可變的數(shù)據(jù)類型,VARCHAR是一種長(zhǎng)度可變的類型,但因?yàn)樗贛ySQL內(nèi)部當(dāng)做長(zhǎng)度固定不變的CHAR類型,所以可以使用。

一般在以下幾種情況下使用Memory存儲(chǔ)引擎:

1.目標(biāo)數(shù)據(jù)較小,而且被非常頻繁地訪問(wèn)。在內(nèi)存中存放數(shù)據(jù),所以會(huì)造成內(nèi)存的使用,可以通過(guò)參數(shù)max_heap_table_size控制Memory表的大小,設(shè)置此參數(shù),就可以限制Memory表的最大大小。

2.如果數(shù)據(jù)是臨時(shí)的,而且要求必須立即可用,那么就可以存放在內(nèi)存表中。

3.存儲(chǔ)在Memory表中的數(shù)據(jù)如果突然丟失,不會(huì)對(duì)應(yīng)用服務(wù)產(chǎn)生實(shí)質(zhì)的負(fù)面影響。

Memory同時(shí)支持散列索引和B樹(shù)索引。B樹(shù)索引的優(yōu)于散列索引的是,可以使用部分查詢和通配查詢,也可以使用、和=等操作符方便數(shù)據(jù)挖掘。散列索引進(jìn)行“相等比較”非???,但是對(duì)“范圍比較”的速度就慢多了,因此散列索引值適合使用在=和的操作符中,不適合在或操作符中,也同樣不適合用在order by子句中。

可以在表創(chuàng)建時(shí)利用USING子句指定要使用的版本。例如:

復(fù)制代碼代碼如下:

create table users

(

id smallint unsigned not null auto_increment,

username varchar(15) not null,

pwd varchar(15) not null,

index using hash (username),

primary key (id)

)engine=memory;

上述代碼創(chuàng)建了一個(gè)表,在username字段上使用了HASH散列索引。下面的代碼就創(chuàng)建一個(gè)表,使用BTREE索引。

復(fù)制代碼代碼如下:

create table users

(

id smallint unsigned not null auto_increment,

username varchar(15) not null,

pwd varchar(15) not null,

index using btree (username),

primary key (id)

)engine=memory;

MERGE

MERGE存儲(chǔ)引擎是一組MyISAM表的組合,這些MyISAM表結(jié)構(gòu)必須完全相同,盡管其使用不如其它引擎突出,但是在某些情況下非常有用。說(shuō)白了,Merge表就是幾個(gè)相同MyISAM表的聚合器;Merge表中并沒(méi)有數(shù)據(jù),對(duì)Merge類型的表可以進(jìn)行查詢、更新、刪除操作,這些操作實(shí)際上是對(duì)內(nèi)部的MyISAM表進(jìn)行操作。Merge存儲(chǔ)引擎的使用場(chǎng)景。

對(duì)于服務(wù)器日志這種信息,一般常用的存儲(chǔ)策略是將數(shù)據(jù)分成很多表,每個(gè)名稱與特定的時(shí)間端相關(guān)。例如:可以用12個(gè)相同的表來(lái)存儲(chǔ)服務(wù)器日志數(shù)據(jù),每個(gè)表用對(duì)應(yīng)各個(gè)月份的名字來(lái)命名。當(dāng)有必要基于所有12個(gè)日志表的數(shù)據(jù)來(lái)生成報(bào)表,這意味著需要編寫并更新多表查詢,以反映這些表中的信息。與其編寫這些可能出現(xiàn)錯(cuò)誤的查詢,不如將這些表合并起來(lái)使用一條查詢,之后再刪除Merge表,而不影響原來(lái)的數(shù)據(jù),刪除Merge表只是刪除Merge表的定義,對(duì)內(nèi)部的表沒(méi)有任何影響。

ARCHIVE

Archive是歸檔的意思,在歸檔之后很多的高級(jí)功能就不再支持了,僅僅支持最基本的插入和查詢兩種功能。在MySQL 5.5版以前,Archive是不支持索引,但是在MySQL 5.5以后的版本中就開(kāi)始支持索引了。Archive擁有很好的壓縮機(jī)制,它使用zlib壓縮庫(kù),在記錄被請(qǐng)求時(shí)會(huì)實(shí)時(shí)壓縮,所以它經(jīng)常被用來(lái)當(dāng)做倉(cāng)庫(kù)使用。

存儲(chǔ)引擎的一些問(wèn)題

1.如何查看服務(wù)器有哪些存儲(chǔ)引擎可以使用?

為確定你的MySQL服務(wù)器可以用哪些存儲(chǔ)引擎,執(zhí)行如下命令:

復(fù)制代碼代碼如下:

show engines;

這個(gè)命令就能搞定了。

2.如何選擇合適的存儲(chǔ)引擎?

(1)選擇標(biāo)準(zhǔn)可以分為:

(2)是否需要支持事務(wù);

(3)是否需要使用熱備;

(4)崩潰恢復(fù):能否接受崩潰;

(5)是否需要外鍵支持;

然后按照標(biāo)準(zhǔn),選擇對(duì)應(yīng)的存儲(chǔ)引擎即可。

顯示系統(tǒng)存儲(chǔ)引擎的命令

查看mysql存儲(chǔ)引擎命令。

在mysql提示符下搞入show engines; 字段Support為:Default表示默認(rèn)存儲(chǔ)引擎,設(shè)置InnoDB為默認(rèn)引擎: 在配置文件my.cnf中的 [mysqld] 下面加入 default-storage-engine=INNODB 一句。

重啟mysql服務(wù)器: mysqladmin -u root -p shutdown 或者service mysqld restart 登錄mysql數(shù)據(jù)庫(kù)。

網(wǎng)站標(biāo)題:怎么查看mysql引擎,查看mysql中支持的儲(chǔ)存引擎語(yǔ)句
轉(zhuǎn)載來(lái)于:http://muchs.cn/article24/phjcje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣、網(wǎng)站改版手機(jī)網(wǎng)站建設(shè)、外貿(mào)建站、企業(yè)網(wǎng)站制作、微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)