sql 大数据查询慎用 order by

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 大数据查询慎用 order by相关的知识,希望对你有一定的参考价值。

今天在sql 查询中一个表中查询花了至少20秒时间,数据为620000行,sql语句如下:

测试一:使用order by 

单单只是查询0,10行数据,耗时27.888s

select a.id,a.county_id,a.county_name,a.town_id,a.town_name,a.village_id,a.village_name,b.province as province_name,b.name as city_name from place a left join city b on a.city_id=b.code where a.id is not null order by a.village_id asc limit 0, 10

技术分享

测试二:不使用order by

select a.id,a.county_id,a.county_name,a.town_id,a.town_name,a.village_id,a.village_name,b.province as province_name,b.name as city_name from place a left join city b on a.city_id=b.code where a.id is not null limit 0, 10

同样是查询0,10行数据,耗时0.084s

 技术分享

以上仅供参考,数据更大时需要进行更精细的优化

以上是关于sql 大数据查询慎用 order by的主要内容,如果未能解决你的问题,请参考以下文章

如何应用:大查询中的count(distinct ...)超过(partition by ... order by)?

clickhouse 在order by非常慢的情况下优化(引擎+分段sql)

SQL如何使用order by语句查询数据表的多字段

对order by的理解

sql里 where和order by一起使用是怎样的顺序

sql order by,desc和limit使用(mysql)