Mysql 应该使用什么类型的数据库来存储和查询数百万家餐厅

Mysql 应该使用什么类型的数据库来存储和查询数百万家餐厅,mysql,database,oracle,bigdata,nosql,Mysql,Database,Oracle,Bigdata,Nosql,我正在设计一个系统,该系统将存储世界上所有可用的餐厅,然后用户应该能够在这样大的数据集上以非常低的删除率执行通用搜索。普通的RDBMS是否足以满足这一需求,或者我是否应该选择像cassandra这样的大数据框架。我应该使用什么来提高通用搜索的效率。为每家餐厅存储评论的最佳方式是什么 您可以使用任何RDBMS来存储数据。但对于快速搜索,请使用提供各种快速搜索和聚合的搜索引擎 直接使用lucene可能需要更多的努力,因此您可以使用围绕lucene构建的现有工具,如和 所以第一个问题是:你认为会有多少

我正在设计一个系统,该系统将存储世界上所有可用的餐厅,然后用户应该能够在这样大的数据集上以非常低的删除率执行通用搜索。普通的RDBMS是否足以满足这一需求,或者我是否应该选择像cassandra这样的大数据框架。我应该使用什么来提高通用搜索的效率。为每家餐厅存储评论的最佳方式是什么

您可以使用任何RDBMS来存储数据。但对于快速搜索,请使用提供各种快速搜索和聚合的搜索引擎


直接使用lucene可能需要更多的努力,因此您可以使用围绕lucene构建的现有工具,如和

所以第一个问题是:你认为会有多少数据? 大数据方法更适合于数十亿条记录,但当然,如果没有适当的硬件和数据库设计,数百万条记录可能会导致MySQL服务器的性能非常差

NoSQL更适合于不相关的数据,我认为在您的情况下,表之间会有很多关系,例如,您可以使用与外键直接相关的restaurants表,例如,restaurant_comments表

在这种情况下,使用MySQL innoDB引擎将非常有用,例如,当您删除一家餐厅时,它的所有评论都可以被删除,并节省磁盘空间和时间

如果您计划拥有不超过1亿到2亿家餐厅,使用合适的硬件专用MySQL服务器,或者多台服务器使用负载平衡器,并且您以良好的方式设计了数据库表、关系、数据类型和索引,那么您将拥有优异的性能


如果你计划有更多的数据和很多用户查询数据,那么你应该考虑使用HbASE或卡桑德拉使用Apache Hadoop。

许多数据库和技术适合你描述的问题。但是,Stack Overflow不是推荐特定软件解决方案的网站。请阅读提问指南。这里是一个起点:。我看到的统计数据表明,在世界范围内,平均每1000人有2家餐馆。这是一个粗略的概括,因为像俄罗斯这样的国家拥有适度的餐饮文化,而像日本和韩国这样的国家拥有巨大的餐饮文化。然而,如果我们把这个数字按表面价值计算,那么它就意味着全世界大约有1400-1500万家餐馆。如果允许20%的误差,你就拥有1800万家餐厅。通过适当的分区,并根据您管理历史数据的方式,一个普通的RDBMS几乎可以解决这一问题。世界上所有可用的餐厅……由于填充数据集将花费数百万美元,我建议现在就拨出一部分钱来建立一个有能力的开发团队,并支付适当的设计工作。