gpt4 book ai didi

sql-server - SQL 服务器 : one table fulltext index vs multiple table fulltext index

转载 作者:行者123 更新时间:2023-12-03 17:07:27 27 4
gpt4 key购买 nike

我有一个搜索程序,它必须在五个表中搜索相同的字符串。我想知道哪个在读取性能方面更好?

  • 要将所有表合并到一个表中,然后在其上添加全文索引
  • 在所有这些表中创建全文索引并对所有表发出查询,然后合并结果

最佳答案

我认为在处理性能时需要考虑的一点是,读取数据几乎总是比读取数据、移动数据然后再次读取而不是只读取一次更快。

所以从你的问题来看,如果你将所有表组合成一个单一的临时表或表变量,这肯定会很慢,因为它必须查询所有数据并移动它(取决于你使用的数据量这可能会或可能不会有太大的不同)。关于您的表结构,只有当相同的字符串在整个表中出现多次时,字符串索引才会真正变得有效。

即如果您搜索月份(一月、二月、三月等...),索引会很好,因为它只能是 12 个选项中的一个,并且值重复的次数越多/可供选择的选项越少索引越好。如果您正在搜索用户输入的值(“我正在写我的人生故事......”)并且您正在搜索该字符串中的单词,索引可能没有任何区别。

假设您的查询正在搜索,在我的示例月份中,您可以执行如下操作:

SELECT value
FROM (
SELECT value FROM table1
UNION
SELECT value FROM table2
UNION
SELECT value FROM table3
UNION
SELECT value FROM table4
UNION
SELECT value FROM table5
) t
WHERE t.value = 'Jan'

这会将您的结果组合成一个结果集,而无需四处移动数据。同样,解释器将能够使用每个表上提供的索引找到最有效的方法来查询每个表。

关于sql-server - SQL 服务器 : one table fulltext index vs multiple table fulltext index,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35289874/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com