我正在构建一个实现可应用于数据集的过滤器的网站。请允许我解释这些过滤器。在这种情况下,它将是一个有房屋的网站。
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的性能会更好?
答案 0 :(得分:1)
你也可以使用。
如果您在mysql中使用非规范化表(即没有连接),它类似于mongoDB中的对象,但更难查询。
因此,如果可以以合理的方式对您的数据进行非规范化,那么请使用Mongo,否则为RDBMS。
答案 1 :(得分:1)
拥有10,000条记录,MySQL的性能应该不错。由于您已熟悉MySQL,我建议您使用它。您可以按照here所述尝试GROUP BY ... WITH ROLLUP
,只需一个查询即可完成工作。 MySQL以及你的客户端需要做一些额外的工作,但我认为它会被查询数量的减少所抵消。