【发布时间】:2015-08-19 17:56:39
【问题描述】:
对于简单的任务管理应用程序(例如),存储和查询数据的最佳方式是什么?目标是让单个 EC2 实例以最少的资源消耗(CPU、磁盘、RAM)获得最高性能。
【问题讨论】:
标签: sql json key-value-store data-access nosql
对于简单的任务管理应用程序(例如),存储和查询数据的最佳方式是什么?目标是让单个 EC2 实例以最少的资源消耗(CPU、磁盘、RAM)获得最高性能。
【问题讨论】:
标签: sql json key-value-store data-access nosql
这也取决于用例 - 是具有多次读取还是多次写入的数据库?当您谈论任务管理时,您必须知道您期望多少条记录,以及您是否期望更多的 INSERT 或更多的 SELECT 等等。
关于 SQL 数据库,可以在这里找到有趣的基准:
基准测试表明,SQLite 在许多情况下可以非常快,但在某些情况下也无效。 (不幸的是,基准不是最新的,但仍然可能有帮助)
SQLite 的优点还在于它只是磁盘上包含整个数据库的单个文件,您可以使用 SQL 语言访问数据库。
可以在此处找到非常长且令人筋疲力尽的 No-SQL 基准测试:
了解数据库引擎也很好,即在使用 MySQL 时,请在 MyISAM 和 InnoDB 之间谨慎选择(这里有很好的答案What's the difference between MyISAM and InnoDB?)。
如果你只是想优化性能,你可以考虑使用硬件资源进行优化(如果你从数据库中读取很多并且你没有那么多写入,你可以缓存数据库(innodb_cache_size) - 如果你有足够的RAM,你可以从 RAM 中读取整个数据库。
长话短说 - 如果您正在为一个非常简单和小型的数据库选择引擎,SQLite 可能是您想要使用的简约方法。如果你想构建更大的东西,首先要明确你的需求。
【讨论】: