数据库领域存在的一些现象:
现象一,开发人员将数据库视为“黑盒子”。开发人员不关心、不重视数据库,也不了解SQL语句的执行情况、数据库的运行机制,甚至因为引入很多ORM工具,导致开发人员不了解数据库是如何完成请求并获得数据的,优化自然无从谈起。
现象二,SQL优化只是DBA的事情。在很多设计、开发、测试人员的眼中,SQL优化只是DBA的事情,他们不需要去关心。反映到具体工作中,他们缺乏相应的优化意识,只注重功能的实现而忽略了相应的执行成本。最终的结果往往就是代码质量不高,软件上线后问题多。
现象三,盲目优化。有些公司很重视SQL优化工作,但又缺乏必要的技术投入。经常见到这样的开发规范—─所有WHERE条件字段都必须加上索引,结果就是数据库被“过分”优化,适得其反。
现象四,SQL优化很简单。有些人认为SQL优化很简单,甚至觉得SQL优化就是加索引的事!我就曾遇到因为索引过多导致执行性能低的案例。
现象五,硬件技术发展很快,不用再计较SQL优化。硬件技术近年来发展迅速,使得服务器的处理能力有了极大的提升。但我们要清醒地看到,SQL优化才是问题的根本解决之道。
现象六,开发人员想提高SQL语句质量却无从下手。有些开发人员认识到了SQL语句质量的重要性,想要提高却无从下手。一方面,他们本身不具备数据库的专业知识;另一方面,SQL编程本身也有其特殊性,与其他常用开发语言有较大差异。正是这些因素,导致开发人员想要提高SQL语句质量却困难重重。
现象七,重运行维护,轻开发优化和架构设计。大多公司意识到了数据库的重要性,但往往只重视运维而忽视了前期的架构设计、开发优化。我们经常会看到一个项目中,公司会花大笔费用购买昂贵的硬件、备份软件等,却不舍得购买与数据库优化、SQL审计相关的软件。此外,随着自动化运维的逐步推广以及数据库云服务的逐渐成熟,传统意义的数据库运维工作必然会逐步萎缩,取而代之的则是数据库的设计、开发乃至整体架构开发。这也是DBA未来发展的一个方向。
现象八,资料繁多,却无从选择。Oracle数据库在国内流行多年,该领域的书也非常多,但涉及优化书的相对较少,特别是局限在SQL语句优化范畴的。近年来,我也发现了几本不错的书,但普遍存在技术偏深、可操作性不强的问题,对于广大数据库开发的初学者或者有一定经验但急需提高的从业者不太适用。