用于存储许多独特项目的数据库或存储引擎是什么?

时间:2012-11-22 00:18:24

标签: database storage

我正在考虑编写一个只收集网页网址的网络抓取工具(仅用于存档项目),但我在找到存储结果的正确方法时遇到了问题。

要求是无论使用何种存储引擎,都可以处理数十万个项目(最好能够为每个条目添加元数据,尽管不是必需的),并且可以忽略现有项目(以避免重复) )没有显着的性能影响。

我看过的引擎:

  • MySQL :随着数据库变大,检查现有项目的速度会明显变慢。
  • SQLite :与上述问题相同,性能更差。
  • memcache和Redis :数据集可能会变得足够大,导致RAM存储不可行。
  • MongoDB :根据explanation on their website,如果大部分数据集都存储在磁盘上,则不确定性能是否可以接受。

您对MongoDB的适用性有何看法(因为我没有使用MongoDB中的大型数据集的经验),您是否知道为此目的存在任何更好的(免费)存储引擎?

2 个答案:

答案 0 :(得分:1)

如果使用传统的RDBMS,则可以根据数据的哈希值创建唯一键(例如:使用md5或sha1对URL进行哈希)。这将使唯一键保持小(ish),并且应该有助于提高性能。

我喜欢PostgreSQL - 你可能想用它做一些测试。

编辑:(见评论)好的,也许在这个时代避免使用md5(:

答案 1 :(得分:0)

听起来像NoSQL解决方案很适合你。

特别是因为您只想在某处以URL的“id”转储各种灵活数据。

我使用过lucene,但mongo也是一个不错的选择。