2

我正在构建一个实现可应用于数据集的过滤器的网站。请允许我解释一下这些过滤器。在这种情况下,它将是一个带有房屋的网站。

Number of rooms:
    2 or less ( 2271 )
    3 or more ( 4283 )
    4 or more ( 2223 )
    5 or more ( 1213 )

Price range
    More then {fill in number}
    Less then {fill in number}

Type
    For sale ( 2938 )
    For rent ( 1029 )

这些天你会更频繁地看到它。总共大约有 7 个过滤器。

现在我不确定我应该使用什么样的数据库。将有大约 10000 个实体和每日更改(约占数据集的 1%)。我正在考虑的两个是:

MongoDB面向对象

首先,我是这些所谓的面向对象数据库的新手。但我听说过一些关于他们的好故事。他们的计划较少,而且在工作中可能非常快。

MySQL关系型数据库

我以前在这种情况下使用过 MySQL,性能可以接受。我使用了使数据库更加动态的EAV 模型。我使用带有关系的 InnoDB 引擎来保持完整性。

问题是当我使用多个过滤器时,子查询会堆积起来,当我在你选择过滤器时计算可能性的数量时会发生这种情况。

在这种情况下如何看待性能,什么 dbms 会表现得更好?

4

2 回答 2

1

有 10,000 条记录,MySQL 的性能应该不错。由于您已经熟悉 MySQL,因此我建议您使用它。您可以GROUP BY ... WITH ROLLUP按照此处所述尝试通过一个查询来完成工作。MySQL 以及您的客户端将需要做一些额外的工作,但我认为这将被查询数量的减少所抵消。

于 2011-03-09T14:20:05.180 回答
1

你可以使用任何一个。
如果你在 mysql 中使用非规范化表(即没有连接),它类似于 mongoDB 中的对象,尽管更难查询。
因此,如果可以以合理的方式对数据进行反规范化,请使用 Mongo 否则,RDBMS。

于 2011-03-09T14:00:27.577 回答