读书随笔:为什么我选择把代码写在数据库里?

我们的文章会在微信公众号IT民工的龙马人生博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢!
由于博客中有大量代码,通过页面浏览效果更佳。

本文为个人学习《Expert Oracle Database Architecture Techniques and Solutions for High Performance and Productivity(第四版本》一书过程中的笔记与理解分享,仅用于学习与交流,部分内容参考原书观点并结合>实际经验进行整理。若涉及版权问题,请联系删除或沟通处理。也请大家支持购买原版书籍。

为什么我选择把代码写在数据库里?

大家好,今天我想分享一下我的编程理念——为什么我特别喜欢把业务逻辑直接写在数据库里。

数据库就是我的"万能工具箱"

对我来说,数据库就像一个神奇的万能工具箱。只要把功能实现在数据库里,我就能把这个工具箱带到任何地方使用。不管是Windows电脑、Linux服务器还是其他操作系统,Oracle数据库都能完美运行。

这就像Java程序能在任何安装了Java虚拟机的电脑上运行一样。数据库就是我的"虚拟机",它帮我屏蔽了不同操作系统的差异。我可以在自己笔记本上的Oracle数据库开发好功能,然后直接部署到客户的服务器上,完全不用担心系统兼容性问题。

我的编程优先级清单

当需要实现一个功能时,我的选择顺序是这样的:

  1. 首选SQL语句:能用一条SQL语句解决的就绝不用两条。现在的SQL功能非常强大,90%的需求一条SQL就能搞定。

  2. 其次PL/SQL:如果SQL实在搞不定,就用PL/SQL写存储过程。但我会尽量写得简短,因为代码越少,bug就越少。

  3. 不得已用C语言:只有在需要极致性能,或者要调用C写的第三方库时,才会考虑用C写外部程序。

  4. 最后的选择:如果连C都实现不了,可能就要重新考虑这个需求是否合理了。

为什么这样选择?

PL/SQL的优势:它和SQL是天作之合,配合起来特别自然。经过30多年的优化,PL/SQL现在运行效率非常高。在其他语言里调用SQL总感觉别扭,但在PL/SQL里就像说母语一样流畅。

Java的作用:当数据库确实处理不了时,我会用Java来补充。现在Java通过"原生编译"技术,运行速度已经能和C语言媲美了。

C语言的定位:除非是特别追求性能,或者必须用C调用的特殊接口,否则我很少直接用C。

实际工作中的分工

这种开发方式还有个好处:作为开发者,我不用太操心操作系统层面的问题。这些交给DBA(数据库管理员)去处理就好。他们才是操作系统专家,我的精力可以集中在业务逻辑上。

当然,如果开发的是传统的客户端-服务器程序,主要代码都在数据库外面,那就还是得关注操作系统特性。但如果是数据库应用开发,这套方法能帮我省去很多麻烦。

总结

简单来说,我的编程哲学就是:

  • 能用数据库解决的就用数据库
  • 代码能少写就少写
  • 优先选择与数据库配合最好的工具

这样做出来的系统不仅开发效率高,而且性能好、容易维护、方便移植。这就是为什么我如此推崇这种"数据库优先"的开发方式。

------------------作者介绍-----------------------
姓名:黄廷忠
现就职:Oracle中国高级服务团队
曾就职:OceanBase、云和恩墨、东方龙马等
电话、微信、QQ:18081072613
个人博客: (http://www.htz.pw)
CSDN地址: (https://blog.csdn.net/wwwhtzpw)
博客园地址: (https://www.cnblogs.com/www-htz-pw)

posted @ 2025-07-02 15:01  认真就输  阅读(12)  评论(0)    收藏  举报