0

可能重复:
SQL 异步多个查询合并结果 - 最大结果(顶部 XYZ)

我有成千上万的表,基本上是这样命名的:

Table_key1_key2_key3

结构如下:

ID
TextColumn

text列上有全文索引,每个表都有自己的全文目录。

当用户传入一堆 (key1,key2,key3) 元组和搜索文本时,我有一个为这些表生成查询的存储过程。我启动了一堆异步查询,它们搜索TextColumns 并将结果写入表。一旦他们都完成了,我会选择前 1000 个匹配结果。(我还添加了代码,每次完成 100 次时,我都会检查结果表,如果结果超过 1000 个,我会返回)

这样做的问题是它仍然太慢,特别是当匹配很少甚至没有时......)。我们有很多很多行,用户通常会选择大约 5,000 个 (key1,key2,key3) 元组进行搜索。有什么好方法可以让我进一步加快速度吗?我可以完全访问整个表结构等。

4

1 回答 1

0

不要将 RDBMS 用于这样的事情。您最好部署一个分布式解决方案,例如 ElasticSearch 或 Solr,它允许您使用比全文搜索提供的方法更灵活的方法来搜索海量文档存储库。

于 2012-11-10T05:33:05.557 回答