sql 分组查询效率
2016-07-02 22:41
246 查看
场景:分组查询每种类型 ID值最大 的记录;
mysql数据库30W数据量。
写法一:
select * from test1 t1 where t1.id in(
select MAX(t.id) as id from test1 t
GROUP BY t.col1
)
耗时超过30秒;
写法二:
select t2.* from (
select MAX(t.id) as id from test1 t
GROUP BY t.col1
)t1 LEFT JOIN test1 t2 on t1.id=t2.id
耗时不超过0.1秒
mysql数据库30W数据量。
写法一:
select * from test1 t1 where t1.id in(
select MAX(t.id) as id from test1 t
GROUP BY t.col1
)
耗时超过30秒;
写法二:
select t2.* from (
select MAX(t.id) as id from test1 t
GROUP BY t.col1
)t1 LEFT JOIN test1 t2 on t1.id=t2.id
耗时不超过0.1秒
相关文章推荐
- SQL中的三值逻辑
- SQL Server 作业批量停止
- 结束SQL阻塞的进程
- 动态生成SQL Server视图作业
- SQL Server 语句操纵数据库
- SQL(结构化查询语句)
- oracle sql日期比较
- linux快速部署mysql服务器
- sql 存储过程分页
- 在WINXP系统上安装SQL Server企业版的方法
- 通过批处理调用SQL的方法(osql)
- SQL Server 存储过程的分页
- ASP程序与SQL存储过程结合使用详解
- SQL SERVER编写存储过程小工具
- 防御SQL注入攻击时需要注意的一个问题
- Microsoft Sql server2005的安装步骤图文详解及常见问题解决方案
- PostgreSQL教程(十九):SQL语言函数
- SQL Server复制需要有实际的服务器名称才能连接到服务器