通常来说海量数据的最大瓶颈是在数据的查询上,下面给出一些解决方法。
一、数据库
1、建表:每张表的数据量不能太大,数据库理论一般建议最大为100万条,每张表根据数据量的大小可划分成按天、按月、按年等来建立表。
2、建库:
方案一:如果历史数据也总需要查询的话,可将数据库分成历史库和现有库,历史库数据用于查询历史数据,现存库只用于查询现在的数据,这样可提高数据操作的性能;
方案二:将数据库划分成主、从库。从库将数据库只用于查询不能修改,主库主要用于插入等,选择一个适当的时间或一些其他的数据同步技能实现主从库的同步(有些数据库提供该功能,相当也可以自己去写)。
3、建立适当的索引、视图、存储过程。
当然,以前方案在实际运行中,可根据具体的情况来选择合适的方案。另外,上述方案是可以选择几个同时运用的,基本是不冲突的。
二、服务器端
1、对于数据库操作的SQL语句,要尽可能的使用索引,以提高其查询效率,避免使用全表查询,具体如何使用索引,请查看我博客中的其他文章。另外,要适时的使用视图和存储过程。
2、在服务器端,如果硬件允许多缓存一些常用的数据,如一些配置、参数等,以减少和数据库的交互,减轻数据的负担。但是,一定要设立更新缓存或清除缓存的功能,以保证缓存数据是最新的。
三、负载均衡
采用好的负载均衡策略,可以提高数据的并发量,以减轻部分服务器的压力,平均分配到各个服务器上。对于负载均衡我的BLOG上也有些肤浅的建解,欢迎查阅。
实现负载均衡有软件实现和硬件实现两种。
1、软件实现上可以借助第三方的负载均衡软件,如IBM公司的CICS,在WEB方面,也可以借助开源NginX;也可以自己去实现,如QQ。
2、硬件实现当然只能去买相应的负载均衡器了,这个东西,性能通常来说比软件实现要好,但不绝对,但价钱比较昂贵。
四、硬件
在硬件方面,CPU、内存、主板等都是必不可少的东西,这个配置一定要高。在硬件还有个重要的就是硬盘,这个东西是非常重要的,具我现在所知道的磁盘阵列就是非常不错,他可以做RAID,这不仅能提高I/O的读写能力,又能提高数据的安全性。
以上就是我对海量数据的一些认识,有不对的地方希望大家能给与指正,并希望大家有什么更好的方案,拿出来给大家分享一下,谢谢!
海量数据的解决办法(绝对原创)
原创
©著作权归作者所有:来自51CTO博客作者zhongguoren666的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
配置OE常见错误以及解决办法『罗斌原创』
配置OE常见错误以及解决办法『罗斌原创』
休闲 luobin44 罗斌原创 配置OE OE常见错误以及解决办法 -
IDEA控制台输出中文乱码解决办法 原创intellij-idea java intellij idea 中文乱码 ide
-
菊子曰备份Wordpress网站的博客内容出错的解决办法(原创)
今天用菊子曰备份Wordpress网站的博客内容出错,我采用的wordpress是最新
php 开发语言 PHP Access 根目录