【问题标题】:jQuery UI autocomplete: search 2 huge MySQL tables not linkedjQuery UI 自动完成:搜索 2 个未链接的巨大 MySQL 表
【发布时间】:2019-04-08 07:17:16
【问题描述】:

我的网站引用了 20.000 位不同作者的 100.000 多篇文章。我想在两个表中进行 jQuery UI 自动完成搜索,文章标题或作者姓名。

这两张表基本上是:

表格文章

  • 标题(例如:这是标题)
  • 蛞蝓(例如:this-is-the-title)

表格作者

  • 姓名(例如:John Doe)
  • 蛞蝓(例如:john-doe)

应检索 slug 信息,因为搜索栏将根据搜索结果重定向到 article.phpauthor.php

我担心这样解析这两个表需要很长时间,超过 30 秒:

SELECT title, ar.slug, name, au.slug
FROM articles ar,author au
WHERE published = 1
AND (title LIKE :term OR name LIKE :term)

该列已编入索引。

有没有更好的方法? 感谢您的帮助。

【问题讨论】:

    标签: php mysql jquery-ui jquery-ui-autocomplete


    【解决方案1】:

    您的查询如此缓慢的原因是您的 JOIN 没有条件,因此您得到的潜在结果集为 100,000*20,000,即 2B 行必须由您的 WHERE 子句过滤。由于此查询不需要任何类型的表之间的关系,因此最好只使用UNION,添加一个字段来区分authortitle

    SELECT 'author' AS type, name AS value, slug
    FROM author
    WHERE published = 1 AND name LIKE :term
    UNION
    SELECT 'title' AS type, title, slug
    FROM articles
    WHERE published = 1 AND title LIKE :term
    

    【讨论】:

    • @Jibeji 不用担心。很高兴我能帮上忙。
    猜你喜欢
    • 2014-09-17
    • 1970-01-01
    • 1970-01-01
    • 2015-08-19
    • 1970-01-01
    • 2011-08-13
    • 1970-01-01
    • 1970-01-01
    • 2012-01-09
    相关资源
    最近更新 更多