Php jQuery UI自动完成:搜索2个未链接的大型MySQL表

Php jQuery UI自动完成:搜索2个未链接的大型MySQL表,php,mysql,jquery-ui,jquery-ui-autocomplete,Php,Mysql,Jquery Ui,Jquery Ui Autocomplete,我的网站引用了20000名不同作者的超过100000篇文章。我希望jQueryUIAutoComplete在两个表中搜索,要么是文章标题,要么是作者姓名 这两个表基本上是: 桌上物品 这是书名 这就是标题 表格作者 姓名:约翰·多伊 鼻涕虫前:无名氏 根据搜索结果,搜索栏将重定向到article.php或author.php,因此应检索slug信息 我担心的是,像这样解析这两个表需要很长时间,超过30秒: SELECT title, ar.slug, name, au.slug FROM art

我的网站引用了20000名不同作者的超过100000篇文章。我希望jQueryUIAutoComplete在两个表中搜索,要么是文章标题,要么是作者姓名

这两个表基本上是:

桌上物品

这是书名 这就是标题 表格作者

姓名:约翰·多伊 鼻涕虫前:无名氏 根据搜索结果,搜索栏将重定向到article.php或author.php,因此应检索slug信息

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

SELECT title, ar.slug, name, au.slug
FROM articles ar,author au
WHERE published = 1
AND (title LIKE :term OR name LIKE :term)
该列已编入索引

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

您的查询速度如此之慢的原因是您对加入没有任何条件,因此您将得到一个100000*20000的潜在结果集,即2B行,必须通过WHERE子句进行筛选。由于此查询不需要表之间的任何类型的关系,因此最好只使用联合,添加一个字段来区分作者和标题:


@吉贝吉不用担心。很高兴我能帮忙。
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