这句话优化了吗?
select d.id, d.wfid, d.docid , k.keyword, k.value from keywords k
inner join documents d
where k.document_id in (23,24) AND k.document_id = d.id;
我通过 POST
(23,24) 获得了一些 ID,我只需要获取它们的信息,因此我执行了 IN
。这里是为了测试目的而硬编码的。
我知道 MySQL 会解析句子并生成更优化的句子。有没有办法得到那句话,这样我就可以避免让 mysql 一直优化它?
谢谢!
最佳答案
如果你运行这些,你会看到 MySQL 重写如何处理它们。 注意显示警告中的 SQL 并不总是有效的 SQL 语法
explain extended select d.id, d.wfid, d.docid , k.keyword, k.value from keywords k
inner join documents d
where k.document_id in (23,24) AND k.document_id = d.id;
show warnings;
关于带有 IN 子句的 MySQL 内部连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18924673/