操作数据库存储引擎
我們?cè)趺磥?lái)操作引擎呢,那么我們接下來(lái)就是操作一些命令了,比如說(shuō)1. 查看數(shù)據(jù)所支持的引擎,你是用linux下的Mysql還是window下的都可以啊,我就不用linux啟動(dòng)虛擬機(jī)那么麻煩了,直接用window下的,我是5.7的,這是mysql自帶的一個(gè)客戶端,然后我們來(lái)看,我還是不用他了,因?yàn)樗@個(gè)我還要來(lái)回切庫(kù),切來(lái)切去的,到不是什么很麻煩,比如我這里又一個(gè)test,這里寫(xiě)一個(gè)查詢,注意看,他查的是這個(gè)庫(kù)里用的是什么引擎,命令是: show engines,后面帶復(fù)數(shù)的s,看到了嗎,這是你當(dāng)前版本5.7的數(shù)據(jù)庫(kù)支持的一些引擎,然后你看啊,第一個(gè)是InnoDB,然后是default的,然后是MRG_MYISAM,這是merge合并的意思,然后MEMORGY,內(nèi)存引擎,BLACKHOLE黑洞引擎,MyISAM引擎,CSV引擎,這兩個(gè)我們也多有介紹,這是我們當(dāng)前數(shù)據(jù)庫(kù)的所有的引擎,但是有些引擎在某些版本的里面沒(méi)有,可能把他去掉了這個(gè)很正常,明白這個(gè)意思吧,那我們可以通過(guò)show engines這個(gè)命令當(dāng)前的MYSQL是什么樣的引擎,這個(gè)命令已經(jīng)寫(xiě)到里面了,清楚了嗎,但是我光看數(shù)據(jù)庫(kù)沒(méi)用啊2. 查看當(dāng)前數(shù)據(jù)庫(kù)默認(rèn)的引擎,其實(shí)我們?cè)谶@里已經(jīng)能看到了,對(duì)不對(duì),是不是InnoDB是default的,如果你想看數(shù)據(jù)庫(kù)默認(rèn)的引擎不想用show engines,你可以用show variables like '%storage_engine%',你也可以查看到當(dāng)前數(shù)據(jù)庫(kù)所支持的默認(rèn)引擎,看了嗎,value是不是InnoDB,用的都是這個(gè)InnoDB引擎,然后我們剛才說(shuō)的一個(gè)問(wèn)題是什么呢,存儲(chǔ)引擎是可以把它指定到一個(gè)表的,也就是說(shuō)不同的表可以使用不同的存儲(chǔ)引擎,那我這邊可以看看我這個(gè)表用的存儲(chǔ)引擎,那怎么看表使用的存儲(chǔ)引擎呢,命令非常簡(jiǎn)單3. 用一個(gè)show命令,后面跟create table,有人說(shuō)這不是一個(gè)DDL語(yǔ)句嗎,你不是要?jiǎng)?chuàng)建一個(gè)表嗎,這個(gè)show,前面加了一個(gè)show,直接顯示你這個(gè)表所創(chuàng)建時(shí)的引擎是什么,所以他不是創(chuàng)建表,show create table table name,把show 去掉才是創(chuàng)建表,那我們來(lái)看一下,在我這里有什么表,我們這里有users表,show create table users,然后這個(gè)內(nèi)容挺長(zhǎng)的,其實(shí)是顯示當(dāng)前創(chuàng)建這個(gè)表的內(nèi)容,其實(shí)就是一個(gè)創(chuàng)建表的命令,我們拷貝一下,隨便粘到一個(gè)文件里,CREATE TABLE `users` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵',`slug` varchar(200) NOT NULL COMMENT '別名',`email` varchar(200) NOT NULL COMMENT '郵箱',`password` varchar(200) NOT NULL COMMENT '密碼',`nickname` varchar(100) DEFAULT NULL COMMENT '昵稱',`avatar` varchar(200) DEFAULT NULL COMMENT '頭像',`bio` varchar(500) DEFAULT NULL COMMENT '簡(jiǎn)介',`status` varchar(20) NOT NULL COMMENT '狀態(tài)(unactivated/activated/forbidden/trashed)',PRIMARY KEY (`id`),UNIQUE KEY `slug` (`slug`),UNIQUE KEY `email` (`email`)) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8這是不是一個(gè)創(chuàng)建表的命令,看哪兒呢,看ENGINE=InnoDB這兒,ENGINE等于InnoDB,是吧,說(shuō)明在創(chuàng)建表時(shí),我們是不是也可以指定存儲(chǔ)引擎,我們默認(rèn)的就是InnoDB,非常簡(jiǎn)單吧,用一個(gè)show create命令創(chuàng)建表,就可以看到當(dāng)前表用的是什么存儲(chǔ)引擎4. 修改表的存儲(chǔ)引擎,用什么呢,那還得是alter命令了,alter是什么語(yǔ)句,是DDL語(yǔ)句的,DDL語(yǔ)句有create,alter,這樣的語(yǔ)句構(gòu)成,還有drop,alter table修改表,alter table users engine=InnoDB,那我們現(xiàn)在就來(lái)做一個(gè)實(shí)驗(yàn),把ABC這個(gè)表默認(rèn)的InnDB改成MyISAM,看他的語(yǔ)句,然后我們?cè)賮?lái)看show create table users;然后我們?cè)賮?lái)看user引擎,看到了嗎,是不是非常的簡(jiǎn)單,上面的講解呢,其實(shí)就是我們?cè)跀?shù)據(jù)庫(kù)來(lái)操作引擎了,這是非常簡(jiǎn)單的
?
總結(jié)
- 上一篇: mysql的索引介绍_2
- 下一篇: 数据库引擎讲解_1