我正在优化一个mysql
查询,该查询将 2 个表连接在一起,并有一些 where 子句和一个 order by。
我注意到(使用解释)在查询评估期间创建了一个临时表。(因为我正在对不是加入队列中第一个表的表中的字段进行分组)
我真的很想知道这个临时表是否正在写入磁盘,解释结果没有告诉我。
能够知道究竟是什么进入所述临时表也很好。我的 where 子句中的一些限制是在索引列上,而有些则不是,所以我认为 mysql 可能不会以最佳方式将行选择到临时表中。
具体来说,我的查询基本上是以下形式: select ... from a join b where ... 对索引列和非索引列的 a 和 b 都有限制。问题是进入从 a 中选择的临时表的行数比我怀疑的要多。我想对此进行调查。