Mysql 引擎一般有InnoDb,MyIsam,等,如图
# The default storage engine that will be used when create new tables when
在mysql配置文件中my.ini中,可以看到有 “
default-storage-engine“,默认为InnoDB,可以修改为MyIsam,这样创建表的时候如果不指定engine,则使用默认引擎。
InnDB和MyIsam的区别
1. 从数据库文件存储方面:
InnoDB是直接存储在
data/ibdata1中,其实这个二进制文件包含所有的InnoDB的数据库文件。只会越来越大,不会因为你删除数据库删除表而减小,空间一直处于占用状态。那么很明显,
所有的InnoDB引擎的数据都存放在一个二进制文件里,不是很好。
不能直接复制到别的服务器。
MyIsam效果就很好了,使用MyIsam会在
data/Test_DB/中生成每一张表
单独的
.MYD
数据文件。
复制到别的mysql服务器
data/DB/
下直接使用!
2. 从读写方面:
InnoDB
支持事务,(代码)每次插入、修改
必须显示commit。
MyIsam不支持事务,
(代码)每次插入、修改
直接生效,无须commit。
3. 从数据结构方面:
InnoDB支持主键外键等
MyIsam虽然也能创建主键、外键,但是
外键等约束是以index(索引)的方式存在
PS:其实,我之前一直认为引擎建好以后就无法修改了,但是今天用HeiDiSQL(可视化)时,发现是可以更改已经存在的表引擎。
修改数据库引擎的SQL是:
ALTER TABLE `My_DataDB`.`My_Table` ENGINE MyISAM;