我正在构建一个应用程序,为购买的服务维持可用的现金余额,由信用卡或汇票提供资金。当然,作为一个小型创业公司,性能并不是一个大问题,因为一开始就不会出现这种情况。
那就是说,我的预算很小READ:现在开源。使用传统的Z主机我会很傻。 oracle就此而言,所以我在innodb或myisam引擎之间争论mysql。
对于我的大多数项目,我选择了innodb。对于第一个假设的100K客户来说,这可能是一个可行的选择吗?还是myisam?是否建议金融交易使用表格锁定?
答案 0 :(得分:2)
我会投票给PostgreSQL
http://www.postgresql.org/它最接近企业RDMS,特别是如果你要来自oracle
您还可以考虑MySQl
http://www.mysql.com/
如果您选择MySQL,那么我建议您使用innoDB
而不是MyIsam
,因为Database Transaction
支持对金融交易非常重要
见:
http://www.databasejournal.com/features/mysql/article.php/3382171/Transactions-in-MySQL.htm
PHP + MySQL transactions examples
我希望这会有所帮助
答案 1 :(得分:0)
当数据完整性成为主要关注点时,InnoDB是合乎逻辑的选择。 以下是一些比较:
InnoDB较新,而MyISAM较旧。
InnoDB更复杂,而MyISAM更简单。
InnoDB在数据完整性方面更严格,而MyISAM则不如此 严格。
InnoDB实现了行级锁定以便插入和更新 MyISAM实现了表级锁。
InnoDB有交易而MyISAM没有交易。
InnoDB有外键和关系约束,而MyISAM则有 不
InnoDB具有更好的崩溃恢复能力,而MyISAM在系统崩溃时恢复数据完整性方面表现不佳。
MyISAM有全文搜索索引,而InnoDB没有。
在我开发的财务应用程序中,通常的布局通常从InnoDB上的所有内容开始,除了可能用于执行日志记录或类似任务的表。 MyoAM没有的InnoDB最重要的功能是transactions
。也就是说,多个操作被视为一个操作。它们都成功或交易失败。
一旦应用程序需要扩展,其他非关键表格将转换为MyISAM,这在某种程度上有所帮助,特别是如果您的应用程序有大量流量。
希望有所帮助,欢呼!