操作数据库存储引擎
我們怎么來操作引擎呢,那么我們接下來就是操作一些命令了,比如說1. 查看數據所支持的引擎,你是用linux下的Mysql還是window下的都可以啊,我就不用linux啟動虛擬機那么麻煩了,直接用window下的,我是5.7的,這是mysql自帶的一個客戶端,然后我們來看,我還是不用他了,因為它這個我還要來回切庫,切來切去的,到不是什么很麻煩,比如我這里又一個test,這里寫一個查詢,注意看,他查的是這個庫里用的是什么引擎,命令是: show engines,后面帶復數的s,看到了嗎,這是你當前版本5.7的數據庫支持的一些引擎,然后你看啊,第一個是InnoDB,然后是default的,然后是MRG_MYISAM,這是merge合并的意思,然后MEMORGY,內存引擎,BLACKHOLE黑洞引擎,MyISAM引擎,CSV引擎,這兩個我們也多有介紹,這是我們當前數據庫的所有的引擎,但是有些引擎在某些版本的里面沒有,可能把他去掉了這個很正常,明白這個意思吧,那我們可以通過show engines這個命令當前的MYSQL是什么樣的引擎,這個命令已經寫到里面了,清楚了嗎,但是我光看數據庫沒用啊2. 查看當前數據庫默認的引擎,其實我們在這里已經能看到了,對不對,是不是InnoDB是default的,如果你想看數據庫默認的引擎不想用show engines,你可以用show variables like '%storage_engine%',你也可以查看到當前數據庫所支持的默認引擎,看了嗎,value是不是InnoDB,用的都是這個InnoDB引擎,然后我們剛才說的一個問題是什么呢,存儲引擎是可以把它指定到一個表的,也就是說不同的表可以使用不同的存儲引擎,那我這邊可以看看我這個表用的存儲引擎,那怎么看表使用的存儲引擎呢,命令非常簡單3. 用一個show命令,后面跟create table,有人說這不是一個DDL語句嗎,你不是要創建一個表嗎,這個show,前面加了一個show,直接顯示你這個表所創建時的引擎是什么,所以他不是創建表,show create table table name,把show 去掉才是創建表,那我們來看一下,在我這里有什么表,我們這里有users表,show create table users,然后這個內容挺長的,其實是顯示當前創建這個表的內容,其實就是一個創建表的命令,我們拷貝一下,隨便粘到一個文件里,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 '簡介',`status` varchar(20) NOT NULL COMMENT '狀態(unactivated/activated/forbidden/trashed)',PRIMARY KEY (`id`),UNIQUE KEY `slug` (`slug`),UNIQUE KEY `email` (`email`)) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8這是不是一個創建表的命令,看哪兒呢,看ENGINE=InnoDB這兒,ENGINE等于InnoDB,是吧,說明在創建表時,我們是不是也可以指定存儲引擎,我們默認的就是InnoDB,非常簡單吧,用一個show create命令創建表,就可以看到當前表用的是什么存儲引擎4. 修改表的存儲引擎,用什么呢,那還得是alter命令了,alter是什么語句,是DDL語句的,DDL語句有create,alter,這樣的語句構成,還有drop,alter table修改表,alter table users engine=InnoDB,那我們現在就來做一個實驗,把ABC這個表默認的InnDB改成MyISAM,看他的語句,然后我們再來看show create table users;然后我們再來看user引擎,看到了嗎,是不是非常的簡單,上面的講解呢,其實就是我們在數據庫來操作引擎了,這是非常簡單的
?
總結
- 上一篇: mysql的索引介绍_2
- 下一篇: 数据库引擎讲解_1