我有两个表products
(名称varchar2(200)),其中包含7000条记录和description
(完整描述文本),其中包含1000万条记录。我想在fulldescription列的每一行中从products
表中搜索每个名称。
我的查询:
select
name, fulldescription
from
products
inner join
description on fulldescription like concat('%',name,'%');
我想快速得到结果。我使用全文索引了完整的描述,但仍需要很多时间。
有没有更好的方法来加快我的查询?
答案 0 :(得分:0)
全文索引的最佳方式。但改变一下你的结构。创建一个新表
create table new_table(product_id int, description_id int);
插入新产品时请使用此sql命令;
INSERT INTO new_table(product_id, description_id) SELECT p_id, description_id FROM description WHERE MATCH (fulldescription) AGAINST (Product_name_string);
在这个sql全文中可以帮助您找到相应的描述ID