MySQL建立資料表時設定引擎MyISAM/InnoDB操作
我在配置mysql時將配置檔案中的預設儲存引擎設定為了InnoDB。今天查看了MyISAM與InnoDB的區別,在該文中的第七條“MyISAM支援GIS資料,InnoDB不支援。即MyISAM支援以下空間資料物件:Point,Line,Polygon,Surface等。”
作為一個地理資訊系統專業的學生(其實是測繪專業)來講,能儲存空間資料的資料庫才是好資料庫,原諒我是資料庫小白的身份。
有三種方式可以設定資料庫引擎:
(1)修改配置檔案
將安裝目錄下~\MySQL\mysql-5.6.31-winx64的my.int配置檔案開啟,在[mysqld]的後面修改或新增(如果你之前未設定)下列語句:
default-storage-engine=INNODB
而我會自己修改為MyISAM,以後在你建立資料表時預設引擎為當前設定。
(2)建立資料表時宣告
mysql> create table test( -> id int(10) unsigned not null auto_increment,-> name varchar(10) character set utf8,-> age int(10),-> primary key(id) -> ) -> engine=MyISAM -> ;
上述語句為建立表格的語句,如下圖,沒有什麼可說的。
接下來查詢一下,建立的表格的引擎類別。
show create table test;
(3)更改資料表的引擎
資料表的引擎型別,不是一成不變的,可以通過視覺化應用如Navicat for Mysql進行修改,也可以通過命令來修改,下面將剛才新建的test表格引擎修改為InnoDB.
alter table test engine=innodb;
補充知識:MySQL 更改所有表的資料引擎,MyISAM 設定為 InnoDB
一、先設定執行SQL語句:
SELECT GROUP_CONCAT(CONCAT( 'ALTER TABLE ',TABLE_NAME,' ENGINE=InnoDB; ') SEPARATOR '' ) FROM information_schema.TABLES AS t WHERE TABLE_SCHEMA = '資料庫' AND TABLE_TYPE = 'BASE TABLE';
把資料庫改成你的資料庫名字,這裡假設我的資料庫是database
SELECT GROUP_CONCAT(CONCAT( 'ALTER TABLE ',' ENGINE=InnoDB; ') SEPARATOR '' ) FROM information_schema.TABLES AS t WHERE TABLE_SCHEMA = 'database' AND TABLE_TYPE = 'BASE TABLE';
二、得到一段超長的SQL,複製後執行這段SQL
三、檢視當前資料庫的欄位儲存資訊
SHOW TABLE STATUS FROM database;
結果:
以上這篇MySQL建立資料表時設定引擎MyISAM/InnoDB操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。