Wordnet MySQL 语句未完成

Wordnet MySQL statement doesn't complete

我正在使用此处的 Wordnet SQL 数据库:http://wnsqlbuilder.sourceforge.net

一切都很好,并且已经设置了具有适当权限的用户。

我正在尝试查找单词的同义词,并尝试使用本页底部的两个示例语句:http://wnsqlbuilder.sourceforge.net/sql-links.html

SELECT synsetid,dest.lemma,SUBSTRING(src.definition FROM 1 FOR 60) FROM wordsXsensesXsynsets AS src INNER JOIN wordsXsensesXsynsets AS dest USING(synsetid) WHERE src.lemma = 'option' AND dest.lemma <> 'option'

SELECT synsetid,lemma,SUBSTRING(definition FROM 1 FOR 60) FROM wordsXsensesXsynsets WHERE synsetid IN ( SELECT synsetid FROM wordsXsensesXsynsets WHERE lemma = 'option') AND lemma <> 'option' ORDER BY synsetid

但是,它们从未完成。至少在任何合理的时间内都没有,我不得不取消所有查询。所有其他查询似乎都能找到,当我分解第二个 SQL 示例时,我可以让各个部分在合理的时间内工作并完成(大约 0.40 秒)

当我尝试 运行 完整语句时,MySQL 命令行客户端挂起。

这个语法有问题吗?是什么导致它需要这么长时间?

编辑:

"EXPLAIN SELECT ..."

的输出

"EXPLAIN EXTENDED ...; SHOW WARNINGS;"

的输出

我深入研究了所使用的各种语句,发现问题出在 IN 命令中。

MySQL 对数据库中的每一行重复该语句。这是挂起的原因,因为它必须 运行 遍历数十万条记录。

我对此的补救措施是将命令拆分为两个单独的数据库调用,首先获取同义词集,然后动态创建绑定 SQL 字符串以查找同义词集中的单词。