全部博文(535)
分类: 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数据统计,不会对应用产生负面影响
中间表可以灵活的增加索引,或增加临时的新字段,从而达到提高统计查询有效方法