采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
Group By为什么效率低? 那将数据全量查出后,在程序中处理,这种方式好吗? 能讲一下group by的常用优化方案吗?
额外问一个问题,当我去判断一个数据是否存在最好的sql语句是什么? select 1 from 表 where 非索引字段 = ‘value’ limit 1 还有更好的方法吗?
同学你好:
为什么 group by 的效率比较低?
group by 是将数据分组,这其中实际也会涉及到排序的操作。如果你的数据量很大,那么,这个排序过程可能是非常慢的。所以,排序的过程会降低 SQL 语句的执行效率。
将数据全量查出,在程序中处理,这样好吗?
这样肯定是不合适的。因为这样做:大数据量的传输很耗时、消耗机器的内存、大数据量的处理本身也非常慢。
group by的常用优化方案
效率低的根本原因就是因为数据量大导致的,所以,想要做优化,核心思想就是降低数据量。可以在 group by 之前把需要过滤的数据通过 where 条件给出;给 group by 的相关字段加上索引等等。
判断一条数据记录是否在一张表中
这个判断最高效的方式当前是判断主键;如果不能通过主键判断,需要 where 去查询带有索引的字段列;如果需要判断的列没有索引,mysql 是需要扫描数据记录的,效率最低。
欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!
登录后可查看更多问答,登录/注册
广告营销系统,未来大中型企业的标配
1.7k 14
3.3k 10
1.2k 10
1.3k 8
1.1k 8