如何在大文本上使用类似opertor来加速mysql查询?

时间:2015-11-19 06:54:12

标签: mysql

我有两个表products(名称varchar2(200)),其中包含7000条记录和description(完整描述文本),其中包含1000万条记录。我想在fulldescription列的每一行中从products表中搜索每个名称。

我的查询:

select 
    name, fulldescription 
from 
    products
inner join 
    description on fulldescription like concat('%',name,'%');

我想快速得到结果。我使用全文索引了完整的描述,但仍需要很多时间。

有没有更好的方法来加快我的查询?

1 个答案:

答案 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