【发布时间】:2014-05-13 20:24:47
【问题描述】:
我在 wordpress 默认搜索的搜索引擎上苦苦挣扎了几天。 我没有使用任何插件进行搜索。 在我的站点中,有超过 20,000 个帖子,当我在寻找具有太多结果的关键字时,mysql 正在崩溃或 http 会话超时。
例如,我搜索了“q”。查询需要 40 秒到 10 秒甚至断开连接(取决于服务器目前的处理方式。) 但是当我在没有 REGEXP 部分的情况下手动查询时,我在 1-2 秒内成功获得了相同的结果。
您能否指导我在哪里实现了粗体部分,以便我可以从那里删除它?
SELECT SQL_CALC_FOUND_ROWS wp_posts.ID
FROM wp_posts
WHERE 1=1
AND (((wp_posts.post_title LIKE '%q%')
OR (wp_posts.post_content LIKE '%q%')
/--*- I want to get rid of this line
OR (wp_posts.post_content REGEXP '\\[table id=(["\']?)(3|6|7|8|9|10|11|13|15)([\]"\' /])')))
---*/
AND wp_posts.post_type IN ('post', 'page', 'attachment', 'flagallery', 'discussion')
AND (wp_posts.post_status = 'publish'
OR wp_posts.post_author = 2882
AND wp_posts.post_status = 'private')
ORDER BY wp_posts.post_title LIKE '%q%' DESC, wp_posts.post_date DESC
【问题讨论】:
标签: mysql sql regex wordpress search