Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2231870
  • 博文数量: 533
  • 博客积分: 8689
  • 博客等级: 中将
  • 技术积分: 7046
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-26 10:00
文章分类

全部博文(533)

文章存档

2024年(2)

2023年(4)

2022年(16)

2014年(90)

2013年(76)

2012年(125)

2011年(184)

2010年(37)

分类: LINUX

2011-04-14 11:53:14



本教程要来告诉各位关于如何提高表的统计查询速度哦,我们这里讲到了使用中间表来提高数据表的查询与统计速度了。

对于大的表,在进行统计查询时通常会比较慢的,并且还要考虑查询是否会对在线应用产生影响,通常这种情况下我们使用中间表可以提高查询统计速度,下面我们来统计counttable来统计客户每天消费的记录,如下。

create tabel counttable( id,varchar(10),custi decimal(16,2),coutdate date,custip varchar(20)}

由于每天都会产生大量的客户记录,所以这个表的数据量会很大,现在业务部门有一要求,希望统计消费总金钱,下面我们来看实例。

 

mysq>select sum(custi) from counttable where custdate>adddate(now(),-7);

sum(custi)

161666666666

1row int set (3.95 sec)

方法二,使用中间表来处理tmp_cout

create tabel tmp_count(cid,varchar(10),custcount( decimal( 16,2),custdate date,custip varchar(20)};

现在来转移要统计的数据放到中间表中进行统计并统计出结果

mysq>insert into tmp_count select * from counttalbe wher custdate

Query Ok 15777777 rows affected (6.67 sec)

records 15777777 duplicates: 0 warings 0;

现在我们来统计一下这个星期的客户消费金额

mysql>select sum(cust_count) from tem_count;

sum( cust_count)

1696666666.22

1row in set ( 0.73 sec)

好了,从上面二种方法来看,花费的时间有很多的区别,

使用中间表的部份mysql数据统计,不会对应用产生负面影响

中间表可以灵活的增加索引,或增加临时的新字段,从而达到提高统计查询有效方法
阅读(1659) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~