繁体   English   中英

我应该使用Elastic Search作为我的数据存储而不是MySQL吗?

[英]Should I use Elastic Search as my data store instead of MySQL?

我即将重建我的Web应用程序以使用弹性搜索而不是mysql进行搜索,但我不确定如何这样做。

我看了一个Laracon视频,因为我的应用程序是在Laravel 4.2上构建的,我将使用这个包装器来查询: https//github.com/elasticsearch/elasticsearch

但是,我是否仍会使用MySQL数据库来存储数据,并进行ES搜索? 或者更好的是拥有ES并查询数据。

如果我走第一条路线,我是否必须在双方进行CRUD操作以保持更新?

ES可以处理MySQL可以承载的数据吗? 意味着数亿行?

开始整个事情,我只是非常怯懦。 我可以使用一点方向,非常感谢。 我从未使用过MySQL之外的任何搜索。

我建议将MySQL保留为记录系统,并针对MySQL从您的应用程序执行所有CRUD操作。 然后启动ElasticSearch机器并定期将数据从MySQL移动到ElasticSearch(仅需要搜索的数据)。

然后,如果ElasticSearch关闭,您只会丢失搜索功能 - 您的主数据存储仍然可以。

ElasticSearch可以配置为群集,并且可以扩展得非常大,因此它将处理行数。

要将数据导入Elastic,您可以执行以下操作:

  1. 进行初始导入(非常慢,非常大),然后只使用进程复制差异。 您可能会考虑使用Mule ESB来移动数据( http://www.mulesoft.org/ )。

  2. 当您从应用程序中写入数据时,您可以向MySQL写一次,并将相同的数据写入Elastic。 这提供了Elastic中的实时数据,但是当然如果第二次写入Elastic失败,那么你将丢失数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM