ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ACOUG线下活动参会收获

ACOUG线下活动参会收获

原创 Linux操作系统 作者:realkid4 时间:2011-03-27 13:25:40 0 删除 编辑

 

周六下午有幸参加了在人大举办的ACOUG线下活动——海量数据库管理:企业面临的挑战-暨中韩数据库技术交流。这是我第二次参加ACOUG线下活动,相对于前次,规模和到会专家众多。除了从韩国远道而来的数据库专家李华植先生,还邀请到了我国数据库研究领域的前辈王珊老师,此外也有众多行业界的精英和新老朋友到场。

 

小结一下今天活动的内容:

 

1、韩国数据库专家李华植先生从SQL书写和执行路径的角度,阐述了不同的SQL书写方式、不同的索引构建策略对数据库执行效率方面的影响。凡是从一点一滴的小处入手,全局通盘的战略眼光,是开发维护海量数据库的一个方向;

2、Eygle老师从实际的案例入手,展示了一些优化的方法和策略。大道至简,很多看上去想当然的事情,蕴含着很多经验和知识的积累;

3、人大金仓作为国产数据库的一面旗帜,在会议中企业领导们也发出了自己的声音。作为我国IT信息产业的基础性软件开发商,人大金仓任重而道远。

4、人大信息学院的专家,从目前热门流行的“云计算”技术和NoSQL技术入手,为我们介绍了行业前沿对海量数据库的一些解决之道。受益良多。

 

 

个人修行浅薄,只是对下面几个方面有自己的体会和想法。

 

全局战略优化思路

 

在进行数据库结构优化的过程中,要站在战略的高度全局思考。对各种优化手段,如索引列的选取、数据表的访问策略和设置类型,要提升到项目开发组统一进行管理。

 

这里强调的管理,是包括设置和维护两个层面。例如:我们为哪一个业务场景(操作类型)建索引,索引列包括哪些,类型和如何组织。这些问题都需要提升到全局进行考量。

 

此外,进行优化之后,并不是可以放置不管。要建立维护优化策略的机制,跟踪业务系统需求与优化场景的对应关系。当业务场景优先级变化或者取消的时候,我们可以通过跟踪场景对应的优化策略进行联动的调整。

 

业务场景是多样的,对数据访问的方式也是多样的。这种时候,我们如何做出选择呢?本人认为,还是应该站在用户体验关注的优先级上。业务是多样的,同样也是有优先级别的。利用有限的资源,去满足尽可能高优先级的需求,才能带来高边际收益的价值提交。

 

举例来说,两个需求,分别要求对两个列建索引。但是因为性能等因素的限制,只能建一个索引,那如果选择?一个需求是前台的查询,用户实际中很少用到或者一般都不会设置。另一个需求是每天后台运行上百万次的作业。站在高处,轻重立现。用户一年运行一次的查询,1秒和5秒的差异,是可以在容忍范围的。每天作业运行效率低一小时,用户反馈可想而知。

 

 

这样就要求我们站在全局进行优化。这种方法是对开发DBA和技术业务团队的一大挑战。这种方法要求决策团队对技术和业务要能有全局、清晰和冷静的认识。其中,最重要的角色就是业务专家,对业务需求进行全局掌握,有序整理。

 

 

业务领域模型在先

 

 

另一个思想是在开发阶段贯彻数据库设计。敏捷开发是目前比较流行的开发方式,它以其对待变化响应而受到大范围应用。敏捷开发的一个基础技术就是不断的重构优化代码。但是,数据库设计的重构是应当怎么做呢?

 

目前流行的数据库重构思想大都强调对于遗留系统数据库,特别是多系统共用遗留系统数据库的重构。其中有效的沟通和流程机制起到很大作用。但是对开发环节上,进行开发数据库重构的阐述较少。

 

应该说,开发阶段数据库重构的压力是很大的。前台代码重构、架构的重新组织和需求认识的逐步深入,都会给数据库带来重构的压力。而数据库重构带来的影响往往很大,轻则变化结构,重则引起前台代码更剧烈的重构。

 

 

在这个问题上,本人有这么几个想法。

 

1、相对于具体多变的需求,业务领域模型是稳定的。可以在项目初始阶段,就集合技术和业务专家,对整体的数据库设计提出一套概要指导。之后按照这个统一的思路进行有序的敏捷开发。这相当于在敏捷中加入了一些预测未来的要素。这个概要指导的基础是业务领域模型和行业专家经验;

2、关注数据库设计的臭味。Martin Fowler在《重构》中使用了代码臭味的概念。数据库设计中也存在臭味的情况,要有专门的全局设计人员,进行检查,并且修正其中的问题;

3、小规模逐步重构,全局资源协调。数据库重构影响面大这个特征,就决定了数据库重构必然是一个小规模、有组织逐步迭代的过程。在进行重构的时候,首先是慎重,要有各方面意见沟通和协调过程。之后,有专门的全局人员衡量评估影响度,全局协调开发资源进行重构。最后确定本次重构影响面全部修正之后,才可以宣布本次重构结束。每次重构的量不宜过大,小步多次递进远好于大步飞跃。

 

 

云技术和RDB

 

很多人都在讨论云技术、NoSQL会不会取代RDB。

 

本人的观点是,在云技术NoSQL的问题上,正是证明了需求和技术的互促法则。“产业的需求促进了新技术的出现应用,以及技术路线方向;新技术带来的可能性刺激产业提出更高目标的需求;

 

 

云技术、NoSQL是建立在互联网技术发展,海量数据膨胀的需求背景下。硬件价格进一步下降,内存数据库成为可能提供了技术基础。用户对严格一致性需求的放松也给云技术、NoSQL提供了业务需求空间。应该说,云技术、NoSQL满足了一定层面的数据库访问新需求,在这部分新市场空间是具有强竞争力的。

 

 

同样,RDB所面对的传统产业需求领域没有发生大的变化。RDB是建立在严格关系数学基础之上的,它严格的设计模型以及优势在过去几十年中满足了广泛的数据库留存需求。应该说,RDB满足的业务需求决定了在今后相当长的时间内,RDB不会被取代。

 

 

对云技术、NoSQL的冲击,本人更愿意认为是数据库留存产业的一次产品市场细分过程。数据库应用的领域越广,市场越大,面对的行业也就越多,面对的需求也就越复杂。世界是多样的,世界上没有万灵药,希望RDB模型解决一切问题本身就是荒唐的想法。进行市场细分,为不同层面的消费者提供不同的产品,可能是最自然的事情。“老人不会去买婴幼儿奶粉吃,妈妈也不会买老年奶粉给宝宝吃”。

 

 

最后,主办方很大手笔的赠送了两本图书。虽然以前买过了,还是很开心。见到各位行业前辈和新老朋友,更是荣幸!

 

 

正如Eygle老师说的:每个人多做一点点,这个世界就会不同。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17203031/viewspace-690689/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
求道~

注册时间:2010-11-30

  • 博文量
    545
  • 访问量
    7676934