我有一个很长的 mysql 查询,我正在尝试改进一点。基本上,它从不同的新闻来源获取标题并将我们数据库中的任何电视节目与之匹配。标题表“权力的游戏更新”应该与节目表中的“权力的游戏”匹配。
它目前运行时间为 35 秒(不太好;慢):
SELECT
news_feed.title,
shows.name,
shows.id,
news_feed.news_id,
news_feed.created_on
FROM news_feed
JOIN shows ON news_feed.title
RLIKE CONCAT(
'(^|[[:blank:][:punct:]])', shows.name, '($|[[:blank:][:punct:]])'
)
从外观上看,我可以通过告诉它要查看的 news_feed.title 的数量来改进它。如何添加类似“ ORDER by news_id DESC LIMIT 50
”的内容,以便在RLIKE CONCAT
?
我认为这样做应该足以让它运行可接受的时间?(它每天运行五次,所以只要它不会使整个服务器崩溃,这没什么大不了的)