gpt4 book ai didi

mysql - 加快我的 mysql 查询宽度 REGEXP

转载 作者:行者123 更新时间:2023-11-29 13:33:45 28 4
gpt4 key购买 nike

我做了sql查询来比较数据

SELECT 
title
FROM
links_forum
WHERE
title REGEXP '[[:<:]]The grey[[:>:]].*[[:<:]](cam|ts|divx|mkv|xvid|dvd|dvdr|dvdrip|brrip|br2dvd|r5|r6|x264|ts2dvd|dvd5|dvd9|720p|1080p)[[:>:]]';

现在需要大约 150 秒才能执行

有没有更快的方法?

最佳答案

使用REGEXP匹配运算符进行搜索会失败,使用title列上的索引扫描来查找您的内容。您仍然可以从 title 上的索引中获得一些好处,因为您只检索该列,所以如果您还没有这样做,请尝试这样做。

REGEXP 也不是最快的文本匹配算法。您可能会从尝试中受益

   SELECT title
FROM links_forum
WHERE title LIKE '%The grey%'
AND title REGEXP (your big regular expression)

这仍然无法使用任何索引,但它会更快地搜索 title 列,以查找我认为是搜索词中最重要的部分。 LIKEREGEXP 快一点。

另一种选择:您可以考虑创建一个包含视频媒体标题的单独表格,而不是在一大堆文本中搜索看似视频媒体的内容。

具体来说,您可以创建一个 links_forum_media_title 表,其中包含 links_forum_id 和 title 列。然后,当您将条目插入 links_forum 时,您也会将条目插入到这个特定的表中。然后您可以在该表上创建一个 (title, links_forum_id) 索引并使用它来查找您的标题。这是编程上的改变。但它会彻底解决你的性能问题。如果您打算扩展此应用程序,那就太好了。

您可以尝试全文搜索。但对于这种需要寻找某种媒体格式代码(cam、ts、divx)的应用程序来说,它并不是很好。

关于mysql - 加快我的 mysql 查询宽度 REGEXP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19051821/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com