oracle sql语句优化

轩辕剑 发布于 2014/01/02 12:07
阅读 170
收藏 0

统计地区用户数量,地区area(area_id,name),用户表 account(id,name,area_id),求一个高性能的查询语句,百万级的用户数据

加载中
0
倚楼听风雨_
倚楼听风雨_
1、创建一个统计表,area_count(area_id, accounts). 


2、更新统计表数据


insert into area_count(area_id, accounts)


select area_id, count(*) from account group by area_id.


3、直接查询 area_count表即可。


---------------------- 

如果数据要经常更换,那就做一个存储过程,做update ,再创建一个job,每隔一段时间执行一次,效率就提高了,只是数据不是实时的而已

0
黄龍
黄龍
没什么好优化的!直接count(id) from  account group by area_id 
0
徒伤悲
徒伤悲
area_id字段加索引,足矣
倚楼听风雨_
倚楼听风雨_
group by 全表扫描,加索引有用?
返回顶部
顶部