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>createtabletest( ->idint(10)unsignednotnullauto_increment, ->namevarchar(10)charactersetutf8, ->ageint(10), ->primarykey(id) ->) ->engine=MyISAM ->;
上述语句为创建表格的语句,如下图,没有什么可说的。
接下来查询一下,创建的表格的引擎类别。
showcreatetabletest;
(3)更改数据表的引擎
数据表的引擎类型,不是一成不变的,可以通过可视化应用如NavicatforMysql进行修改,也可以通过命令来修改,下面将刚才新建的test表格引擎修改为InnoDB.
altertabletestengine=innodb;
补充知识:MySQL更改所有表的数据引擎,MyISAM设置为InnoDB
一、先设置执行SQL语句:
SELECTGROUP_CONCAT(CONCAT('ALTERTABLE',TABLE_NAME,'ENGINE=InnoDB;')SEPARATOR'') FROMinformation_schema.TABLESASt WHERETABLE_SCHEMA='数据库'ANDTABLE_TYPE='BASETABLE';
把数据库改成你的数据库名字,这里假设我的数据库是database
SELECTGROUP_CONCAT(CONCAT('ALTERTABLE',TABLE_NAME,'ENGINE=InnoDB;')SEPARATOR'') FROMinformation_schema.TABLESASt WHERETABLE_SCHEMA='database'ANDTABLE_TYPE='BASETABLE';
二、得到一段超长的SQL,复制后执行这段SQL
三、查看当前数据库的字段存储信息
SHOWTABLESTATUSFROMdatabase;
结果:
以上这篇MySQL创建数据表时设定引擎MyISAM/InnoDB操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。