【问题标题】:Searching with MySQL or ElasticSearch使用 MySQL 或 ElasticSearch 进行搜索
【发布时间】:2017-03-11 18:06:02
【问题描述】:

我在 MySQL InnoDB 表的 1M 行中搜索表时遇到一些问题。

在这 1M 行中,有 100k 处于活动状态(可以通过许多参数进行搜索,包括全文和地理搜索)。 MySQL 索引没问题,所以查询运行时间低于 300 毫秒,但我认为它仍然很糟糕。最糟糕的是巨大的偏移量 - 查询可能需要几秒钟。

我正在考虑使用 ElasticSearch。谁能告诉我这对我有好处吗?

在这种情况下,我必须将 MySQL 数据库与 Elastic 同步,但如果值得我尝试一下。

【问题讨论】:

  • 要求软件/主机推荐/评论是明确的题外话。
  • 如果您使用 GeoPoint 或 GeoShape 在 Elasticsearch 中索引您的数据,您将获得惊人的地理空间搜索性能。
  • @Marc B 我知道,但我不是在搜索软件或托管。如果一种技术可以帮助我解决另一种技术问题,我需要帮助。
  • 我认为问题在于如果不了解您的系统当前的工作方式,就很难提出建议。不过,100 万行不应该是 mysql 的问题。也许您可以对您的代码库做一些事情来优化您的数据库调用?

标签: php mysql elasticsearch


【解决方案1】:

elasticsearch 是您提高搜索性能和避免偏移所需的解决方案。

elasticsearch 用于执行全文和地理位置搜索,而 MySQL 用于存储数据。

根据您使用的框架,您可以轻松地将数据从 MySQL 推送到 elasticsearch http://blog.randywallace.com/blog/2013/08/27/pulling-a-large-mysql-table-into-elasticsearch/

【讨论】:

    猜你喜欢
    • 2012-11-23
    • 1970-01-01
    • 1970-01-01
    • 2023-01-24
    • 1970-01-01
    • 2016-01-18
    • 2019-04-25
    • 2012-03-14
    • 1970-01-01
    相关资源
    最近更新 更多