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不支持外键。
详细区别如图: