问题描述:
MySQL 数据表主要支持六种类型 ,分别是:BDB、HEAP、ISAM、MERGE、MYISAM、InnoBDB。
这六种又分为两类,一类是“事务安全型”(transaction-safe),包括BDB和InnoDB;其余都属于第二类,称为”非事务安全型”(non-transaction-safe)。
问题解决:
存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)。
InnoDB 是较新的事务安全型存储引擎,用于事务处理应用程序,支持BDB的几乎所有特性,并具有众多新特性,包括ACID事务支持。
特性:
事务处理机制
支持外链
崩溃后能立即恢复
支持外键功能,级联删除
支持并发能力
在硬盘上的存储方式:InnoBDB frm
支持外链
崩溃后能立即恢复
支持外键功能,级联删除
支持并发能力
在硬盘上的存储方式:InnoBDB frm
最新版本的Mysql已经计划移除对BDB的支持,转而全力发展InnoDB。InnoDB对Mysql有更好的特性支持,而且开发社区活跃。
MyISAM 默认的MySQL插件式存储引擎,它是基于ISAM类型,但它增加了许多有用的扩展,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。注意,通过更改STORAGE_ENGINE配置变量,能够方便地更改MySQL服务器的默认存储引擎。
优点:
优点:
1.比ISAM表更小,所占资源更少
2.可以在不同平台间二进制移植表的类型在创建表时指定。
2.可以在不同平台间二进制移植表的类型在创建表时指定。
(1)查看数据库可以支持的存储引擎
mysql > how engines;
注:如上图所示,为显示当前mysql支持的存储引擎
mysql > select version();
从上图看出,这里使用的是mysql 5.5版本,默认使用的是InnoDB的数据库引擎,为安全事务的引擎
(2)查看表结构
mysql > desc table_name;
(3)显示表的创建语句
mysql > show create table table_name;
注:
以上显示了表的默认创建语句,从上面可以看出,mysql5.5默认情况下使用的是InnoDB的引擎,使用的编码方式utf-8
(4)显示表的当前状态值
mysql > show table status like 'table_name' G;
(5)修改数据库表的引擎
注:mysql5.5默认情况下创建的数据表就是InnoDB,查看表的结构信息如上
修改表的数据库引擎
mysql > alter table table_name engine=MyISAM; (或 InnoDB 等其它引擎)
修改之后,重新查看mysql的数据库引擎