【发布时间】:2013-05-16 20:53:26
【问题描述】:
此查询运行良好,但执行时间过长。它在 xampp localhost 上运行。
只是我想选择word=“somthing”和word的webpage.id != "另一个东西"
我的意思是,如果您在 Google 上搜索,您可以使用该快捷方式 “蟒蛇-猫” 这意味着获取所有包含单词“python”但不包含单词“cat”的链接。
SELECT webpage.title, word.title, word.id, webpage.title, webpage.id, webpage.link, wordpage.wordID, wordpage.id, wordpage.type, wordpage.pageID
FROM SE_word AS word
INNER JOIN se_wordpage AS wordpage ON wordpage.wordID = word.id
INNER JOIN se_webpage AS webpage ON wordpage.pageID = webpage.id
WHERE word.title = "python"
AND webpage.id NOT IN (
SELECT WP.id
FROM se_webpage AS WP
INNER JOIN se_wordpage AS WOP ON WP.id = WOP.pageID
INNER JOIN se_word AS W ON W.id = WOP.wordID
WHERE W.title = "cat"
)
GROUP BY webpage.id
ORDER BY webpage.title DESC
这是一个简单的搜索引擎,例如
table se_Word is
**id | title**
1 | "game"
2 | "java"
3 | "python"
table se_WebPage is
**id | title**
1 | "www.ABCDEF.com"
2 | "www.ABCDR.net"
3 | "www.ABC.com"
table se_WordPage is
**id | pageID | wordID**
1 | 1 | 1
2 | 2 | 3
3 | 3 | 3
3 | 2 | 1
结果应该是webpage.id = 3
here is创建脚本 有什么优化吗?
提前致谢。
【问题讨论】:
-
1.提供带有
EXPLAIN的执行计划 2. 提供所有表模式 -
我已经添加了。谢谢
-
@Strawberry 你的意思是子查询吗?我认为主查询中列的值与子查询的值不同
-
你都没有添加:1.
EXPLAIN2.SHOW CREATE TABLE -
@zerkms 这里是创建脚本dl.dropboxusercontent.com/u/41343544/se_db.sql