大数据量下的存储设计模式探索
1 引言 现实世界商务竞争越演越烈,出现更多的细分市场、深度营销和定制功能,这导致各种商务应用的用户数和业务复杂度同步增加。反映到数据库里,就是表的数量和数据量日益增长,数据库响应速度日益缓慢。 为什么一个功能好的产品,往往上线后就出现性能问题,不得不反复回炉修改?为什么一到业务高峰期,系统就慢的动弹不得,只能关闭部分业务保障关键业务?数据量从十万到百万,从百万到千万,从千万到上亿,从亿再向兆跨越,如何保障程序能够经受住大数据量的考验?这都是我们面临的真实现状,也是大家反复在思考的问题。 《道德经》上说:“有道无术 , 术尚可求 , 有术无道 , 止于术。”众人把目光集中在系统架构、查询算法、数据库软件的底层原理等等“术”上,却忽视了深刻理解数据这条光明大“道”。数据从哪里来?要到哪里去?数据用来读还是写?数据与数据之间有什么样的关系?数据的增长速度如何控制?最有价值的数据是什么?数据什么时候可以丢弃?假如不能回答这一长串问题,如果不是以这一长串问题的答案为程序设计的出发点,代码如何能经受大数据量的考验? 在数据的采集、计算、展现和存储这一设计链条中,开发者通常负责设计关系型数据模型,编写程序计算和展现数据,数据库管理员负责数据文件存放位置、表空间存储参数等的架构设计。但是,数据库管理员往往不了解业务,不了解数据的特点,数据存储设计表现为千“表”一律。