我正在优化mysql
将两个表连接在一起的查询,并且有几个where子句和一个order by。是否有一个mysql查询将临时表写入磁盘,它到底是写什么的?
我注意到(使用解释)在查询评估过程中创建了一个临时表。 (因为我在一个表中不是加入队列中的第一个表的字段上的组)
我真的很想知道这个临时表是否正在写入磁盘,结果不告诉我。
这也很好,能够告诉究竟是什么进入临时表。我的where子句中的一些限制是在索引列上,有些则不是,所以我认为mysql可能不会最佳地将行选入临时表中。
具体来说,我的查询基本上是这样的形式:select ... from a join b where ...在索引列和非索引列上同时具有a和b限制。问题在于进入从a中选择的临时表中的行数比我猜想的要多。我想调查一下。
不回答用户的问题。用户特别询问他如何能够判断某个特定查询是否将其临时表写入磁盘,以及是否有办法查看首先到达这些临时表的具体内容。 – 2014-11-24 23:23:45