2
我有2个表,即;SQL查询 - 两个表之间的数据匹配
TableA中有大约1000万行,
TableB中大约50万行
TableA (10million rows)
Url
-------------------------------------------
http://www.example.com/data/tuesday-morning
http://www.example.com/data/wednesday-evening
TableB (500k rows)
Keyword Value
--------- ----------
Sunday 0
Monday 0
Tuesday 0
Wednesday 0
我想搜索在TableA
在TableB
所有关键字,并找到匹配,其中一个匹配更新有其Value
至1
。
我使用MERGE,但问题是至少需要10个小时才能进行搜索。
我会作出这样的搜索每天,由于这些关键字在TableB
MERGE INTO TableB As TB
USING (Select Url From TableA) As TA
ON TA.Url LIKE 'http://www.example.com/data/'+TB.Keyword+'-%'
WHEN MATCHED THEN
UPDATE SET TB.Value=1;
每日更新什么将是最好的SQL查询,使这两个表之间最快的查找?
非常感谢
摆脱'(选择URL从表A)'这是肯定减慢您的查询,只使用'TableA' – gofr1
随着该行数量的唯一方法 - 使用全文索引。也就是 - 采用以下由tinka(http://stackoverflow.com/a/39080778/2746150)提出的方法,但是您必须用特定于全文的语言结构来替换'like'%'+ t2.keyword +'%''文本索引更快。 –