1、存储引擎是什么?
Mysql中的数据用各种不同的技术存储在文件(或者内存)中 。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力 。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能 。这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎(也称作表类型) 。MySql默认配置了许多不同的存储引擎,可以预先设置或者在MySql服务器中启用 。
2、MYSQL支持的数据引擎
MyISAM:默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一 。
InnoDB:用于事务处理应用程序,具有众多特性 , 包括ACID事务支持 。
BDB:可替代InnoDB的事务引擎,支持COMMIT、ROLLBACK和其他事务特性 。
Memory:将所有数据保存在RAM中,在需要快速查找引用和其他类似数据的环境下,可提供极快的访问 。
Merge:允许MySQL DBA或开发人员将一系列等同的MyISAM表以逻辑方式组合在一起 , 并作为1个对象引用它们 。对于诸如数据仓储等VLDB环境十分适合 。
Archive:为大量很少引用的历史、归档、或安全审计信息的存储和检索提供了完美的解决方案 。
Federated:能够将多个分离的MySQL服务器链接起来 , 从多个物理服务器创建一个逻辑数据库 。十分适合于分布式环境或数据集市环境 。
Cluster/NDB:MySQL的簇式数据库引擎,尤其适合于具有高性能查找要求的应用程序 , 这类查找需求还要求具有最高的正常工作时间和可用性 。
Other:其他存储引擎包括CSV(引用由逗号隔开的用作数据库表的文件),Blackhole(用于临时禁止对数据库的应用程序输入),以及Example引擎(可为快速创建定制的插件式存储引擎提供帮助) 。
3、启动InnoDB引擎的方法
Mysql中默认的是MyISAM数据引擎,可惜此引擎不支持事务处理,我们需要将默认的数据引擎改为InnoDB 。其中InnoDB和 BerkeleyDB支持事务处理 , 只是默认的情况下都是被disable的 。所有的引擎里面,InnoDB性能最强大,算是商业级的 。启动InnoDB引擎的方法如下:
1)关闭mysql的服务
2)修改my.ini
将default-storage-engine=INNODB前的注释(#)去掉
将skip-innodb这行注释(加上#)
3)保存后重启mysql服务
4、MyISAM引擎和InnoDB引擎的基本差别
MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持 。
MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快 , 但是不提供事务支持 , 而InnoDB提供事务支持已经外部键等高级数据库功能 。
MyIASM是IASM表的新版本,有如下扩展:二进制层次的可移植性、NULL列索引、对变长行比ISAM表有更少的碎片、支持大文件、更好的索引压缩等
InnoDB不支持FULLTEXT类型的索引
InnoDB 中不保存表的具体行数
对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中 , 可以和其他字段一起建立联合索引
【mysql数据库如何启动 MySql中启用InnoDB数据引擎的方法】DELETE FROM table时 , InnoDB不会重新建立表,而是一行一行的删除
…………
这些区别能够影响应用程序的性能和功能,因此你必须针对业务类型来选择合适的引擎,才能最大的发挥MySQL的性能优势 。