社区
MS-SQL Server
帖子详情
Group by 后面的字段多少是否影响SQL语句的效率?
zengjd
2009-04-29 09:40:54
Group by 后面的字段个数是否影响SQL语句的效率?
是不是越多越慢?
...全文
3289
19
打赏
收藏
Group by 后面的字段多少是否影响SQL语句的效率?
Group by 后面的字段个数是否影响SQL语句的效率? 是不是越多越慢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
LIHY70
2009-04-29
打赏
举报
回复
听听~
zengjd
2009-04-29
打赏
举报
回复
[Quote=引用 17 楼 jinjazz 的回复:]
我的理解是全表扫描不管group by 几个字段应该都是差不多的,而且不大有优化的余地。如果他在执行计划中所占比例越大,说明这个查询的效率越好。
[/Quote]
你这个理解和大部分人的理解都不一样,可以不可以详细讲讲你?
jinjazz
2009-04-29
打赏
举报
回复
我的理解是全表扫描不管group by 几个字段应该都是差不多的,而且不大有优化的余地。如果他在执行计划中所占比例越大,说明这个查询的效率越好。
zengjd
2009-04-29
打赏
举报
回复
[Quote=引用 15 楼 jinjazz 的回复:]
具体情况具体分析嘛,最起码的一点,group by越多,返回的数据量也越大。对聚合计算、排序计算已经传输的压力都会增大,进而整个查询计划中的全表扫描的所占比例就会减小。而group by 一个字段的情况下,基本上除了聚合计算就是全表扫描。
[/Quote]
没太看懂你啥意思啊
能不能那个稍微解释一下?
jinjazz
2009-04-29
打赏
举报
回复
具体情况具体分析嘛,最起码的一点,group by越多,返回的数据量也越大。对聚合计算、排序计算已经传输的压力都会增大,进而整个查询计划中的全表扫描的所占比例就会减小。而group by 一个字段的情况下,基本上除了聚合计算就是全表扫描。
Yang_
2009-04-29
打赏
举报
回复
[Quote=引用 13 楼 zengjd 的回复:]
如果Group by后面的字段不是来自同一个表,而是多个多个表的字段
是不是效率更严重?
这个时候,估计索引也没有用了吧!
[/Quote]
索引可能有用,要看具体执行计划
zengjd
2009-04-29
打赏
举报
回复
如果Group by后面的字段不是来自同一个表,而是多个多个表的字段
是不是效率更严重?
这个时候,估计索引也没有用了吧!
-狙击手-
2009-04-29
打赏
举报
回复
不一定,
要看数据分布、密度及索引情况
Garnett_KG
2009-04-29
打赏
举报
回复
在没有索引的情况下,
GROUP BY 后面的字段越多,会增加Sort的复杂度,所以要增加更多的CPU时间,所以会慢些,至於说明不明显,
这要看环境了。
jinjazz
2009-04-29
打赏
举报
回复
[Quote=引用 7 楼 zengjd 的回复:]
我同事说不会。
没法说服他。
[/Quote]
看执行计划
lg3605119
2009-04-29
打赏
举报
回复
应该会 建议在分组列上建立索引
ks_reny
2009-04-29
打赏
举报
回复
[Quote=引用 1 楼 ChinaJiaBing 的回复:]
SQL code
理论会...
[/Quote]
實際也會降低效率的.
zengjd
2009-04-29
打赏
举报
回复
我同事说不会。
没法说服他。
jinjazz
2009-04-29
打赏
举报
回复
聚集索引可以优化聚合函数,具体的sql效率你可以通过执行计划来观察
Yang_
2009-04-29
打赏
举报
回复
虽然不是线形的,越多应该越慢
有时影响不是很大,要看数据(按group by 后字段重复的情况)
jinjazz
2009-04-29
打赏
举报
回复
嗯
让你望见影子的墙
2009-04-29
打赏
举报
回复
和你表中的索引有关系
lgx0914
2009-04-29
打赏
举报
回复
会,而且有非常大的影响
ChinaJiaBing
2009-04-29
打赏
举报
回复
理论会...
sql优化----不同写法下
group
by 的
影响
今天要对实现这样的一个统计效果的sql进行优化。 分析:可以看出此统计是要求针对经销商,车系两个维度对试驾次数和潜客数两个指标进行统计,试驾率是由这两个指标进行计算而得到。 1、维度:经销商,车系 2、指标:试驾次数,潜客数 原版sql如下: 分析问题:此sql给人的第一印象就是用了子查询
效率
低,事实它确实特别慢。而且对于不熟悉业务的人来说想看懂很痛苦。 所以我选择了重
MySQL 篇-深入了解视图、SQL 优化(主键优化、order by 优化、
group
by 优化、update 优化等)
在对数据进行修改的时候,条件中的
字段
是存在索引且没有失效的时候,则会对索引进行加锁,也就是说其他线程再来对该行数据进行修改的时候会阻塞等待,直到锁被释放。只不过,在视图中进行增删改查的操作之前,可以对条件进行检查,满足条件就可以在表中操作数据,需要注意的是,实际是对表中的数据进行操作,视图只是映射基表中的数据。但是,对于多个
字段
的排序的方式不同,就需要在创建索引的时候,分别指定的排序方式,否则在查询的时候,没有对应的索引排序方式,就会走全表查询,使用 using filesore 的方式,
效率
较低。
access insert语句怎么写_不同类型的
sql语句
优化:INSERT语句、ORDER BY语句、
GROUP
BY等...
概述分享一下之前笔记记录的一些不同类型
sql语句
优化方法,针对mysql。主要分成优化INSERT语句、优化ORDER BY语句、优化
GROUP
BY 语句、优化嵌套查询、优化OR语句这几个方面,可能写的不是很全,大家有啥好想法可以在下方留言哦。优化INSERT语句当进行数据insert时,mysql客户端大致要经过的步骤如下:1、客户端连接mysql服务器2、客户端发送INSERT语句到服务器3...
MySQL SQL 优化指南:主键、ORDER BY、
GROUP
BY 和 UPDATE 优化详解
在开发高性能应用时,数据库查询
效率
往往是决定系统响应速度的关键因素之一。MySQL 作为最流行的开源关系型数据库之一,在处理大数据量时,SQL 语句的优化变得尤为重要。本篇文章将详细探讨 MySQL 中的 SQL 优化技术,主要包括主键优化、`ORDER BY` 优化、`
GROUP
BY` 优化以及 `UPDATE` 优化,帮助开发者提升数据库查询性能。
优化
GROUP
BY 语句
优化
GROUP
BY 语句 默认情况下,MySQL对所有
GROUP
BY col1,col2,…的
字段
进行排序。与在查询中指定 ORDER BY col1,col2,…类似。因此,如果显式包括一个包含相同列的 ORDER BY 子句,则对MySQL的实际执行性能没有什么
影响
。 如果查询包括
GROUP
BY 但用户想要避免排序结果的消耗,则可以指定 ORDER BY NULL 禁止排序,如下: #默认情况 mysql> explain select payment_date,sum(amou
MS-SQL Server
34,875
社区成员
254,639
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章