我们在执行某些SQL语句的时候有可能会生成临时表.我们应该尽量的去避免临时表.因为临时表会浪费内存和时间.那么什么情况下会产生临时表呢?
这是来自MYSQL官方的说明
If there is an ORDER BY clause and a different GROUP BY
clause [官方说明]
ORDER BY 子句和一个不一样的
GROUP BY 子句
经过我的测试得出的结论的是: 当使用GROUP
BY 时未使用到索引就会产生临时表.
在商品表(goods) 中取出每个栏目下的所有商品价格总和,并且按栏目ID排序
if the ORDER BY or GROUP BY contains columns from tables other than the
first table in the join queue, a temporary table is created. [官方说明]
使用 ORDER BY 子句和一个不一样的 GROUP BY 子句,或者 ORDER BY 或 GROUP BY
的列不是来自JOIN语句序列的第一个表,就会产生临时表.
原文:http://www.cnblogs.com/tlijian/p/3750795.html