您好我有一个评论表,我在其上运行全文搜索。 c1和c2是使用的同一个表上的别名 通过标准:c1.parent_id = 0我只收到问题(不是他们的答案) 并通过c2.parent_id<> 0我过滤了已有答案的问题
SELECT DISTINCT c1.comment, c1.comment_id, MATCH(c1.comment) AGAINST ('keyword1 keyword2 keyword3') AS score
FROM comments AS c1
JOIN comments AS c2
ON c1.comment_id = c2.parent_id
WHERE c1.parent_id=0
and c2.parent_id <> 0
ORDER BY score DESC LIMIT 9
问题在于,当我运行EXPLAIN SELECT时...搜索会查找表中的每一行 - 所以它越大,此操作就会越慢,而不是只搜索parent_id = 0的行
我想问:是否可以进一步优化此类查询?
答案 0 :(得分:0)
为所有id列添加索引
alter table your_table add index(parent_id)
与comment_id相同