1. 程式人生 > 資料庫 >MySQL建立資料表時設定引擎MyISAM/InnoDB操作

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

MySQL建立資料表時設定引擎MyISAM/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
 -> ;

上述語句為建立表格的語句,如下圖,沒有什麼可說的。

MySQL建立資料表時設定引擎MyISAM/InnoDB操作

接下來查詢一下,建立的表格的引擎類別。

show create table test;

MySQL建立資料表時設定引擎MyISAM/InnoDB操作

(3)更改資料表的引擎

資料表的引擎型別,不是一成不變的,可以通過視覺化應用如Navicat for Mysql進行修改,也可以通過命令來修改,下面將剛才新建的test表格引擎修改為InnoDB.

alter table test engine=innodb;

MySQL建立資料表時設定引擎MyISAM/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

MySQL建立資料表時設定引擎MyISAM/InnoDB操作

三、檢視當前資料庫的欄位儲存資訊

SHOW TABLE STATUS FROM database;

結果:

MySQL建立資料表時設定引擎MyISAM/InnoDB操作

以上這篇MySQL建立資料表時設定引擎MyISAM/InnoDB操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。