现实世界商务竞争越演越烈,出现更多的细分市场、深度营销和定制功能,这导致各种商务应用的用户数和业务复杂度同步增加。反映到数据库里,就是表的数量和数据量日益增长,数据库响应速度日益缓慢。 为什么一个功能好的产品,往往上线后就出现性能问题,不得不反复回炉修改?为什么一到业务高峰期,系统就慢的动弹不得,只能关闭部分业务保障关键业务?数据量从十万到百万,从百万到千万,从千万到上亿,从亿再向兆跨越,如何保障程序能够经受住大数据量的考验?这都是我们面临的真实现状,也是大家反复在思考的问题。 《道德经》上说:“有道无术,术尚可求,有术无道,止于术。”众人把目光集中在系统架构、查询算法、数据库软件的底层原理等等“术”上,却忽视了深刻理解数据这条光明大“道”。数据从哪里来?要到哪里去?数据用来读还是写?数据与数据之间有什么样的关系?数据的增长速度如何控制?最有价值的数据是什么?数据什么时候可以丢弃?假如不能回答这一长串问题,如果不是以这一长串问题的答案为程序设计的出发点,代码如何能经受大数据量的考验? 在数据的采集、计算、展现和存储这一设计链条中,开发者通常负责设计关系型数据模型,编写程序计算和展现数据,数据库管理员负责数据文件存放位置、表空间存储参数等的架构设计。但是,数据库管理员往往不了解业务,不了解数据的特点,数据存储设计表现为千“表”一律。 数据存储设计模式是根据数据的真正特点,仔细分析数据流向、数据访问特点、数据量、数据增长量和数据生命周期,对数据进行分类,然后根据不同类型的数据设计不同的存储策略。正确的应用数据存储设计模式,可以几倍,甚至几十倍的提高数据访问效率。 大数据量下的数据特点 全球最大数据库的数据量已经先后越过了MB 量级、GB 量级和 TB 量级,站到了 PB 量级的门口。在庞大的数据量面前,对数据进行分类显得尤为重要。人们对数据感兴趣的时间是不一样的,大量的数据进入数据库后,经过计算、聚集和转换,仅有少量的活跃数据需要长期保留在数据库中,剩下的数据只有备查的价值,可以暂时存储在数据库中或者离线备份,等到休眠数据完全没有价值后直接删除。 需要长期保留在数据库的活跃数据可以称之为核心数据,它是整个商业活动中最有价值的数据,需要长期甚至永久的保留。程序完成处理后只需要备查的休眠数据可以称之为过程数据,是伴随核心数据流动所产生的数据,它的存在周期视商业活动的重要性而定。 数...