mysql 存储引擎简介和选择

来源:互联网 发布:网络侦探攻略极大挑战 编辑:程序博客网 时间:2024/04/29 04:02

MySQL数据库引擎取决于MySQL在安装的时候是如何被编译的。要添加一个新的引擎,就必须重新编译MYSQL。在缺省情况下,MYSQL支持三个引擎:ISAM、MYISAM和HEAP。另外两种类型INNODB和BERKLEY(BDB),也常常可以使用。如果技术高超,还可以使用MySQL++ API自己做一个引擎。


创建指定引擎的表::::

CREATE TABLE 表名( 字段…… ) ENGINE=InnoDB
也可以用Alter语句在建立表个后进行更改。当你不清楚当前数据库中各表的引擎时可以使用SHOW TABLE STATUS FROM DBname来查看。

使用随MySQL服务器发布同时提供的MySQL客户端来创建表,在创建时可以选择使用的存储引擎。

不同的引擎选择在不同的业务处理上,性能将有天壤之别!


mysql数组库存储引擎:

MyISAM  INONNDB  Memory/heap其中mysql默认的数据库引擎室MyISAM。

各种引擎的特点和选择:

MyISAM:添加数据时,直接把数据加在末尾,所以添加数据快。它在设计之时就考虑到数据库被查询的次数要远大于更新的次数,如果表对事务要求不高,同时是以查询和添加为主的,我们考虑使用myisam存储引擎. ,比如 bbs 中的 发帖表,回复表.注意:对表进行delete时,磁盘中的数据并不会删除,所以需要经常进行磁盘碎片整理。

在控制台上命令为:optimize table tbane在php文件中mysql_query('optimize table tbname')

INNODB: 对事务要求高,保存的数据都是重要数据,我们建议使用INNODB,比如订单表,账号表

Memory 存储,比如我们数据变化频繁,不需要入库,同时又频繁的查询和修改,我们考虑使用memory, 速度极快. 存在与内存中,所以只要系统或服务重启都会丢数据。

其中INNODB和MyISAM两种使用的较多。其两个的主要的区别如下:

INNODB支持事务,MyISAM不支持事务。

MyISAM支持全文索引,INNODB不支持全文索引

MyISAM添加数据和查询较快

INNODB支持行级锁定,MyISAM支持标记锁定

INNODB支持外键,MySAM不支持外键。

详细区别如图: