请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Group By为什么效率低,内存操作更好吗?

Group By为什么效率低?
那将数据全量查出后,在程序中处理,这种方式好吗?
能讲一下group by的常用优化方案吗?

额外问一个问题,当我去判断一个数据是否存在最好的sql语句是什么?
select 1 from 表 where 非索引字段 = ‘value’ limit 1
还有更好的方法吗?

正在回答

1回答

同学你好:

    为什么 group by 的效率比较低?

    group by 是将数据分组,这其中实际也会涉及到排序的操作。如果你的数据量很大,那么,这个排序过程可能是非常慢的。所以,排序的过程会降低 SQL 语句的执行效率。

    将数据全量查出,在程序中处理,这样好吗?

    这样肯定是不合适的。因为这样做:大数据量的传输很耗时、消耗机器的内存、大数据量的处理本身也非常慢。

    group by的常用优化方案

    效率低的根本原因就是因为数据量大导致的,所以,想要做优化,核心思想就是降低数据量。可以在 group by 之前把需要过滤的数据通过 where 条件给出;给 group by 的相关字段加上索引等等。

    判断一条数据记录是否在一张表中

    这个判断最高效的方式当前是判断主键;如果不能通过主键判断,需要 where 去查询带有索引的字段列;如果需要判断的列没有索引,mysql 是需要扫描数据记录的,效率最低。


    欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持! 

7 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信