从被动到主动,换个角度看DB
作者:韩锋
我曾长期从事ERP、电子政务类软件的开发工作,作为数据库的深度使用者,接触到大量数据库,如FoxPro、SQLServer、Oracle、Informix……在实践过程中,对这一领域也愈发感兴趣,并最终选择从事数据库相关工作。我曾长期担任多家公司DBA、数据库架构师,参与过很多项目的数据库设计、开发、优化工作,并在这一过程中积累了不少经验。
在多年的工作中,我发现数据库领域存在一些现象。
现象一,开发人员将数据库视为“黑盒子”。开发人员不关心、不重视数据库,也不了解SQL语句的执行情况、数据库的运行机制,甚至因为引入很多ORM工具,导致开发人员不了解数据库是如何完成请求并获得数据的,优化自然无从谈起。
现象二,SQL优化只是DBA的事情。在很多设计、开发、测试人员的眼中,SQL优化只是DBA的事情,他们不需要去关心。反映到具体工作中,他们缺乏相应的优化意识,只注重功能的实现而忽略了相应的执行成本。最终的结果往往就是代码质量不高,软件上线后问题多。
现象三,盲目优化。有些公司很重视SQL优化工作,但又缺乏必要的技术投入。经常见到这样的开发规范—所有WHERE条件字段都必须加上索引,结果就是数据库被“过分”优化,适得其反。
现象四,SQL优化很简单。有些人认为SQL优化很简单,甚至觉得SQL优化就是加索引的事!我就曾遇到因为索引过多导致执行性能低的案例。
现象五,硬件技术发展很快,不用再计较SQL优化。硬件技术近年来发展迅速,使得服务器的处理能力有了极大的提升。但我们要清醒地看到,SQL优化才是问题的根本解决之道。
现象六,开发人员想提高SQL语句质量却无从下手。有些开发人员认识到了SQL语句质量的重要性,想要提高却无从下手。一方面,他们本身不具备数据库的专业知识;另一方面,SQL编程本身也有其特殊性,与其他常用开发语言有较大差异。正是这些因素,导致开发人员想要提高SQL语句质量却困难重重。
现象七,重运行维护,轻开发优化和架构设计。大多公司意识到了数据库的重要性,但往往只重视运维而忽视了前期的架构设计、开发优化。我们经常会看到一个项目中,公司会花大笔费用购买昂贵的硬件、备份软件等,却不舍得购买与数据库优化、SQL审计相关的软件。此外,随着自动化运维的逐步推广以及数据库云服务的逐渐成熟,传统意义的数据库运维工作必然会逐步萎缩,取而代之的则是数据库的设计、开发乃至整体架构开发。这也是DBA未来发展的一个方向。
现象八,资料繁多,却无从选择。Oracle数据库在国内流行多年,该领域的书也非常多,但涉及优化书的相对较少,特别是局限在SQL语句优化范畴的。近年来,我也发现了几本不错的书,但普遍存在技术偏深、可操作性不强的问题,对于广大数据库开发的初学者或者有一定经验但急需提高的从业者不太适用。
上述种种现象促使我有了将多年的经验汇集成册、编写出版的想法。一方面是能够帮助有相关需求的人,另一方面也是对自己多年的工作进行总结。《数据库高效优化:架构、规范与SQL技巧》已于今年7月出版上市。最后,希望这本书能够引导开发人员、DBA在SQL语句的编写优化上能有进一步提高。
机械工业出版社华章公司特邀到了韩锋老师,他将带着他的新书《数据库高效优化:架构、规范与SQL技巧》,在8月30日(今晚)19:30,在直播栏目中与大家分享如何多角度了解数据库运行状况,以及如何系统性解决数据库优化瓶颈。
书讯 |华章计算机拍了拍你,并送来了8月书单(下)书讯 | 华章计算机拍了拍你,并送来了8月书单(上)上新 | 首本深入讲解Linux内核观测技术BPF的书上市!
书单 | 《天才引导的历程》| 西安交通大学送给准大一新生的礼物干货 | 机器人干活,我坐一边喝茶——聊聊最近爆火的RPA收藏 | 揭秘阿里巴巴的客群画像