0

我已经有一个产品在生产中,我使用带有 SQL Server 的实体框架作为数据库。我使用了全文搜索,其中我存储二进制数据(文件流)以及全文搜索引擎用来索引的文件扩展名。更不用说那是一次蛋糕散步。

现在,我计划迁移到 mysql(原因很明显——成本、开源等)。该产品采用 SAAS 模型(尽管由于流量不高,这是我实际可以接听电话的时间),因此流量会很高,因此搜索引擎应该是可扩展的。

迁移到 mysql 很容易(将再次使用 INNODB,原因很明显),我只坚持使用全文搜索,因为现在只有二进制数据存储在 Sql Server 中。虽然 INNODB 从 5.6 版开始支持全文搜索,但我没有找到全文索引的确切方法(即使用二进制)。

我不确定是否使用第三方全文搜索引擎(Lucene、Sphinx 等),因为我的搜索将是结构化和非结构化的组合,例如:来自俄亥俄州的所有客户(结构化数据,因为我在 RDB 中捕获和存储信息)和在他们上传的一组文件(非结构化)中有“保险”的人。在 SQL Server 中,我使用“ContainsTable”,它给了我排名结果。

我有以下问题:-

  1. 从长远来看,这场运动真的会硕果累累吗?假设我确实迁移了现有数据(4 位数)。
  2. 尽管 INNODB 提供了所有必要的功能,但在 SQL Server 的易用性、管理和规模方面是否匹配?

还有一些问题...

  1. 我可以将全文表原样移动到 mysql 吗?我想我不能索引 blob 列。
  2. 我应该使用 mysql 全文还是任何第三方引擎?
4

1 回答 1

1
  1. 这真的很难说,我使用了这两个系统,我更喜欢 MySql。尽管我发现在 MSSQL 中重建索引要快得多。提示,在 MySQL 中,如果您对全文表有很多更新,您只需删除整个索引,进行更新并读取 FT 索引。这将为您节省大量时间,并减少您的头疼。

  2. 我使用 MySQL 工作台。事实证明,它对我非常有用。但在这里,MSSQL 与 Studio Manager 相比具有巨大优势,具有更多功能和可扩展性。

这个问题本身就很宽泛,有很多方面。如果您最关心的是成本,那么 MySQL 是最好的选择。性能方面,如果 MySQL 服务器设置良好,我发现 RDBS 之间的性能差异很小。

我不确定我的问题是否有帮助,但我希望它能给你一些见解。

编辑:

  1. 不,您不能在 blob 中进行 FT。
  2. 我建议使用基于文档的搜索引擎,然后像 SOLR、Lucene ......
于 2013-10-02T07:06:01.953 回答