同时MySQL是开源的,作为企业开发来说,MySQL开发成本较低,提供的接口可以支持多种语言操作,其兼容性良好,并且MySQL支持不同的存储引擎,可以根据业务的需要选择不同的引擎。
例如:支持事务处理的InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。---用于支付中心
但是比起MyISAM存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。
MySQL数据库引擎介绍:
ISAM:ISAM执行读取操作的速度很快,而且不占用大量的内存和存储资源。但它不支持事务处理,而且一旦硬盘损坏,数据文件就无法恢复。所以使用ISAM就必须经常备份数据。
MyISAM:MyISAM是MySQL的ISAM扩展格式和缺省的数据库引擎。除了提供ISAM里所没有的索引和字段管理的大量功能,MyISAM还使用一种表格锁定的机制,来优化多个并发的读写操作,其代价是你需要经常运行OPTIMIZE TABLE命令,来恢复被更新机制所浪费的空间。MyISAM格式的一个重要缺陷就是不能在表损坏后恢复数据。
HEAP:HEAP的表格都存在内存里,因此它的速度是最快的,但是也因为这个原因,导致它所管理的数据是不稳定的,如果遇到意外停机的情况,所有数据都会丢失。
InnoDB:InnoDB数据库引擎都是造就MySQL灵活性的技术的直接产品,这项技术就是MYSQL++ AP。相比ISAM和MyISAM引擎,虽然InnoDB引擎要稍微慢一些,但是InnoDB里面包含了外来键和事务处理功能。如前所述,如果你的设计需要这些特性中的一者 或者两者,那你就要被迫使用后两个引擎中的一个了。
一般来说,MyISAM适合:(1)做很多count 的计算;(2)插入不频繁,查询非常频繁;(3)没有事务。InnoDB适合:(1)可靠性要求比较高,或者要求事务;(2)表更新和查询都相当的频繁,并且表锁定的机会比较大的情况。