我的网站引用了20.000不同作者的10万多篇文章。我想在两个表中(文章标题或作者姓名)进行jQuery UI自动完成搜索。
这两个表基本上是:
表格文章
- 标题(例如:这是标题)
- sl(例如:这是标题)
表格作者
- 姓名(例如:John Doe)
- sl(例如:john-doe)
应该检索段信息,因为搜索栏将根据搜索结果重定向到 article.php 或 author.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)
该列已被索引。
有没有更好的方法? 感谢您的帮助。
答案 0 :(得分:1)
查询速度如此之慢的原因是,您对JOIN
没有任何条件,因此可能得到的结果集为100,000 * 20,000,即必须由{{1}过滤的2B行}子句。由于此查询的表之间不需要任何类型的关系,因此最好使用WHERE
,并添加一个字段来区分UNION
和author
:< / p>
title