过滤器的最佳数据库系统

时间:2011-03-09 13:56:12

标签: mysql performance mongodb objectdatasource relation

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

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-Model使数据库更具动态性。我使用InnoDB引擎来保持完整性。

问题在于,当我使用多个过滤器时,子查询会叠加,当我选择过滤器时计算可用性的数量时会发生这种情况。

在这种情况下如何考虑性能,dbms的性能会更好?

2 个答案:

答案 0 :(得分:1)

你也可以使用。
如果您在mysql中使用非规范化表(即没有连接),它类似于mongoDB中的对象,但更难查询。
因此,如果可以以合理的方式对您的数据进行非规范化,那么请使用Mongo,否则为RDBMS。

答案 1 :(得分:1)

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