海量数据库的设计与优化
2016-12-21朱东
朱东
摘要:随着互联网技术的高速发展,海量数据库的设计成为大型软件系统不得不面对的棘手难题。在一个每天数千万甚至数亿条数据量的软件系统中,海量的数据对于系统的平稳运行造成了非常大的问题。
关键词:海量数据;设计;优化
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)28-0024-01
数据库技术是信息技术的基础和核心,随着各种应用的数据量飞速增长,海量数据不断产生,在对稳定性,实时性要求高的系统中,良好的数据库设计变得非常迫切。
1 数据库设计
在软件系统处于开发阶段,往往对系统功能的实现关心较多,而对系统的性能关心较少,等系统上线运行后发现系统的性能在不断降低,这时候再去考虑系统的完善,则需要花费更多的时间和财力。因此我们在分析复杂的软件系统需求时,需要确保即使发生高并发的存取情况,系统也不能瘫痪,而要能够保持平稳的运行。
在设计数据库的时候,必须确保数据库的一致性和完整性,确认数据表之间的相互关系,存储空间毕竟是有限的,还要尽可能地降低数据的冗余。数据的冗余度越低、,系统的完整性越容易得到保证,反过来,数据的完整性越好,也更能清楚地表达数据元素之间的相互关系。在大型系统中,经常需要对于多个数据表进行的连接查询,关联的数据表越多,其查询的效率必然会降低,同时应用程序的编程复杂度也相应增加,因此,数据库设计需要均衡考虑。根据系统业务逻辑,确定关联数据表的数据量大小、字段被访问频率,如果某些字段被访问的频率非常高,可以对这些常用的数据表适当提高冗余设计,虽然提高冗余度可能会增加软件系统编程的复杂性,但可以极大提高系统的响应时间,用户体验会变得更好,所以合理的数据冗余也是很有必要的。
数据表在设计时应注意以下问题:
1)通过分区视图可以把一个数据库中的一个大表按照一定的规则分布到不同的数据库中,这样可以减少服务器的压力。但这种分区视图在网络状况不好时,效率比较差。
2)数据表中字段的数据类型能够用数字类型也能用字符型时,则尽量选择数字类型,因为数据库管理系统在执行查询时会依次比较字符串中所有字符,所花时间比较长,而对于数字型的字段,只需要一次比较就可以了,效率高。
3)对于定长字符型和变字符型,定长字符型类型查询效率高,速度快,但是所占存储空间比较大,而变长字符型在查询时速度可能会慢一点,但是可以节省存储空间。因此需要灵活选择字段的数据类型,对于存储的数据长度有特定规则的,每次存储数据量变化不大的字段可以选择定长字符型,长度变化大的字段可以选择变长字符型。
4)字段的长度在在满足条件的情况下,最好短一些,这样可以提高查询的效率,同时在此字段上建立索引的时候也可以减少资源的消耗。
2 数据库优化
1)有时候为了逐行处理数据,需要定义游标,但在使用游标时要慎重,因为游标的执行效率比较差,如果游标操作的数据非常多,比如超过万行,那么最好考虑其他方式。游标虽然提供了对特定数据集合进行逐行扫描的手段,但基于多个表和大数据表定义的游标,往往会使系统程序进入一个较长的等特过程,用户体验不是很好,这个时候可将符合条件的数据行存入到临时表中,然后再对临时表定义游标,进行相关操作,这样可使系统的性能得到较大的提高。
2)索引是数据库中非常重要的一个对象,使用索引可以提高数据表中数据的访问速度,另外没有索引的数据表是按堆结构存储数据的,后续增加的数据都将添加到数据表的后面,建立索引的数据表,表中数据在物理上会按照索引键的顺序存储,大大提高数据的读取速度。
3)数据随着时间持续增长,然而有时候只有近期的数据才是最常用的。定期清除较早数据到历史表中,将业务数据分级存储,一个较小规模的近期表是一种很好的提高查询效率的方法。
3 结束语
随着信息技术的快速发展,越来越多的软件系统需要应对海量的数据,系统性能受到严重影响,在现有条件下,充分优化数据库的设计,可以更好地发掘系统的潜力,提升软件系统的性能。
参考文献:
[1] 毛杰,佘名高.海量数据库查询优化研究[J].软件导刊,2010(5).
[2] 李兰,刘洋,邵明文.客户海量兴趣数据分类的推荐系统优化与仿真[J].计算机仿真, 2014,31(9):449-453.