可能重复:
SQL Async Multiple Queries Combine Results — Maximum Results (Top XYZ)
我有数千个表,基本上这样命名:
Table_key1_key2_key3
并且结构如下:
ID
TextColumn
文本列上有一个全文索引,每个表都有自己的全文目录。
当用户传入一堆(key1,key2,key3)元组和搜索文本时,我有一个存储过程为这些表生成查询。我触发了一堆异步查询,搜索TextColumn
并将结果写入表中。一旦完成,我选择前1000个匹配的结果。 (我也添加了代码,以便每次100完成,我检查结果表,如果有超过1000个结果,我返回)
问题在于它仍然太慢,特别是当几乎没有匹配时......)。我们有许多,很多,很多行,用户经常会选择约5,000(key1,key2,key3)元组进行搜索。有什么好办法可以进一步提高速度吗?我可以完全访问整个表结构等。
答案 0 :(得分:0)
不要像这样使用RDBMS。您最好部署一个分布式解决方案,例如ElasticSearch或Solr,它允许您使用比全文搜索提供的方法更灵活的方法搜索海量文档存储库。