2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 如何进行大量数据需要统计的数据库设计

如何进行大量数据需要统计的数据库设计

时间:2020-09-27 23:45:23

相关推荐

如何进行大量数据需要统计的数据库设计

做视频网站、后台日志和报表数据库设计。之前的那个报表出来太慢了。有没有好的数据库设计方案。

原来有关的就用户表、日志表、视频点播量表。

需要统计每个页面的流量、每个视频的点播量、不同用户的活跃度、用户地区分布图、广告点播量等。

之前统计是在日志上进行查询的。数据越大查询越慢怎么设计能使数据变化大,但是统计效率影响不大啊。

数据越大查询越慢,这个是必然的的,使用缓存可以提升速度,但是不能实时。。。最佳解决方案就是多级报表。。。

比如,如果要统计全国2000多个县市数据,就要遍历2000个点。。如果中间加个省级报表,,这样全国报表就可以建立在30多个省级报表汇总就可以了。。。

在省级报表基础上,可以仿照军区方式,对全国划区,比如7个大区,这样,统计全国报表只要遍历7个点啦。。

所以,我觉得比较好的方式就是多级报表,推荐 全国》》区域》》省》》市县

不过我想更加通用的方案是 建立业务级别的索引。。

1. 业务级别的索引 1

2. 创建索引可以大大提高系统的性能。 1

3. 索引的实现 2

3.1. 通常使用B树及其变种B+树。(需要排序) 2

3.2. 使用hash 2

4. 业务索引的存储 2

5. 索引的实现方式优化 2

5.1. 增量索引 2

6. 增加索引也有许多不利的方面。 2

1.业务级别的索引

大数据量统计下的统计非常慢。缓存可以部分解决这个问题,也可以缓解这个问题,但是缓存往往不能实时查询。多级关联查询也比较麻烦。。

解决思路,就是仿照数据库,建立业务级别的索引。。

默认数据库只能建立列的索引,,只有oracle支持函数索引,mysql ,mssql都不支持函数索引

至于业务索引,只能自己实现了。。

2.创建索引可以大大提高系统的性能。

第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。

第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。

第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。

第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。

第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

3.索引的实现

3.1.通常使用B树及其变种B+树。(需要排序)

3.2.使用hash

4.业务索引的存储

可以使用表来存储。。。Oracle可以建立函数索引,,但业务索引需要使用编程语言代码来计算结果,最后把结果存储到索引里面,建立专门的索引存储表。。。

5.索引的实现方式优化

5.1.增量索引

6. 增加索引也有许多不利的方面。

第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。

第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。

第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。