【原创】mysql InnoDB、MyIsa…

来源:互联网 发布:js例子 编辑:程序博客网 时间:2024/06/14 21:08
Mysql 引擎一般有InnoDb,MyIsam,等,如图
【原创】mysql <wbr>InnoDB、MyIsam对比[修改数据库(表)引擎]

# The default storage engine that will be used when create newtables 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;

0 0
原创粉丝点击