社区
MySQL
帖子详情
mysql group by 一直会using temporary,请问如何优化??
crz03128
2013-02-19 11:47:48
SQL:
EXPLAIN
SELECT campaignid FROM ztc0017
WHERE nick='sitiselected旗舰店'
GROUP BY adgroupid
ORDER BY NULL;
执行计划:
index如下:
...全文
1602
5
打赏
收藏
mysql group by 一直会using temporary,请问如何优化??
SQL: EXPLAIN SELECT campaignid FROM ztc0017 WHERE nick='sitiselected旗舰店' GROUP BY adgroupid ORDER BY NULL; 执行计划: index如下:
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
crz03128
2013-03-23
打赏
举报
回复
order by null 是为了去掉sorting by file
rucypli
2013-02-19
打赏
举报
回复
useing temp未必就一定不好 只要执行时间快就行
rucypli
2013-02-19
打赏
举报
回复
去掉order by null试试
ACMAIN_CHM
2013-02-19
打赏
举报
回复
为什么需要 order by null ?
Rotel-刘志东
2013-02-19
打赏
举报
回复
order by null去掉。
mysql
group
by
using
temp
orary
_
MySQL
GROUP
BY with
Using
Temp
orary
unnecessarily?
I am trying to optimize a query.
Using
EXPLAIN tells me it is
Using
temp
orary
. This is really inefficient given the size of the table (20m+ records). Looking at the
MySQL
documentation Internal
Temp
or...
mysql
优化
,
Using
temp
orary
;
Using
filesort
多表关联时,在order by中使用了非驱动表字段进行排序,
会
出现
Using
temp
orary
;
Using
filesort,此时需要
优化
。
mysql
会
自动将数据量较小的表设置为驱动表,但是我们排序的字段又不是该表的字段,使用left join,可以阻止小表被
优化
为驱动表,但是这种方式往往无法满足业务需求。 此时使用exists子查询刚好满足需求,可以使该表不再被动的置为驱动表,不再出现
Using
temp
orary
;
Using
filesort ...
单表
GROUP
BY 出现
Using
temp
orary
;
Using
filesort
优化
因为索引长度的原因导致联合索引没有生效
mysql
用到了 all 和
Using
temp
orary
;
Using
filesort,如何
优化
?
使用 EXPLAIN 分析查询的执行计划可以帮助
优化
查询。这两个标识表示
MySQL
需要使用临时表来执行查询,或者在查询结束时对结果进行排序。这可能
会
导致查询运行得更慢。 要
优化
查询,你可以尝试以下方法: 尽量避免使用 SELECT *,而是只选择需要的列。 为使用的列创建索引。 尽量使用带有谓词的查询,例如 WHERE 和 HAVING 子句。 尝试使用不同的查询方法,例如使用 JOI...
MySQL
内部临时表(
Using
temp
orary
)案例详解及
优化
解决方法
内部临时表是
MySQL
用来辅助复杂SQL聚合计算使用的,
会
优先占用内存。可用内存大小受
会
话级参数 tmp_table_size 和 max_heap_table_size同时限制,内存不够时
会
将内存临时表转化为磁盘临时表,也可以通过SQL_SMALL_RESULT修饰来强制只使用磁盘临时表。
MySQL
57,063
社区成员
56,759
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章