《PostgreSQL服务器编程》一一1.10 总结——为什么在服务器中进行程序设计

简介:

本节书摘来自华章计算机《PostgreSQL服务器编程》一书中的第1章,第1.10节,作者:(美)Hannu Krosing, Jim Mlodgenski, Kirk Roybal 著,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.10 总结——为什么在服务器中进行程序设计

我们在服务器端完成大部分数据操作编程工作,主要优势有以下几点。
1.10.1 性能
我们进行基于数据的计算几乎总是性能为王,也就是,我们会努力使获得数据的时间周期变得更短。通常在一个典型的数据密集型计算中,我们的大多数时间都集中花费在获得数据上。因此,在计算中,如何使数据访问变得更快就是使整个计算过程变得更高效的最好方法。在我的笔记本电脑上,从100000行记录的数据库中,随机查询一行并返回客户端需要花费2.2ms,但是在数据库内部获取数据,这个操作仅仅花费0.12ms。这是快了20倍的性能表现,并且这是客户端与服务器在同一台使用UNIX套接字的机器上运行的结果。如果客户端与服务器之间使用了网络连接,那么这个差距将会变得更大。
一个真实的小故事:
我的一个朋友被叫到一家大公司帮忙(我确定你们肯定都知道这家公司,但是我不能告诉你是哪家),公司希望能让他们的电子邮件发送程序运行得更快速。这家公司已经使用了最新的Java EE技术,实现了自己的电子邮件生成系统,首先从数据库获得数据,然后在服务间传送数据,并且进行几次的序列化与反序列化工作,最后在数据上进行XSLT转换从而产生电子邮件正文。最终的结果是他们每秒钟仅生成了几百封邮件,并且造成反应速度的严重下滑。
当我朋友重写这个进程的时候,他使用数据库内的PL/Perl函数格式化数据,并且使这个查询返回的是完全格式化的电子邮件,就这样,这个程序每秒钟突然开始涌出上万封的电子邮件,然后他们必须增加发送邮件程序的另一个副本,才能将这些邮件发送出去。
1.10.2 易于维护
如果所有的数据操作代码都位于数据库内,那么要么是数据库函数要么是视图,实际的升级过程就会变得非常简单。我们要完成所有这些操作,所需要的仅仅是运行一个DLL脚本(这些脚本重新定义了函数),这样所有的客户端就自动地使用最新的代码,而完成这样的过程不需要停机时间,也不需要几个前端系统和团队之间复杂的协调处理。
1.10.3 保证安全的简单方法
对于存在潜在风险的服务器,如果所有访问都采用函数方式,并且仅仅为数据库的用户授权他们所需的函数,其他函数均不予授权,这样他们无法看到表数据,甚至不知道这些表的存在。所以即使当服务器被恶意破坏,用户可以做的事情也只是不停地调用同一个函数。而且,即便用户使用了自己编写的查询,比如SELECT * FROM users;来获取数据库中的所有数据,也不可能发生盗取密码、邮件或其他敏感信息的情况。
最重要的是,在服务器上开发程序是最有趣的。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL的服务器日志文件
本文介绍了PostgreSQL数据库的物理存储结构,重点讨论了服务器日志文件。通过`pg_ctl`命令启动PostgreSQL实例时,使用`-l`参数指定日志文件位置,记录数据库启动、运行及关闭过程中的关键信息。附有相关视频讲解和日志文件示例。
527 0
|
存储 监控 C++
OPC服务器与客户程序设计
OPC服务器与客户程序设计
|
弹性计算 关系型数据库 数据库
开源PostgreSQL在倚天ECS上的最佳优化实践
本文基于倚天ECS硬件平台,以自顶向下的方式从上层应用、到基础软件,再到底层芯片硬件,通过应用与芯片的硬件特性的亲和性分析,实现PostgreSQL与倚天芯片软硬协同的深度优化,充分使能倚天硬件性能,帮助开源PostgreSQL应用实现性能提升。
|
SQL 弹性计算 关系型数据库
【ECS生长万物之开源】如何一键本地部署PolarDB for PostgreSQL
使用Docker直接部署PolarDB for PostgreSQL实例;使用Docker在开发镜像中源码编译部署PolarDB for PostgreSQL实例。
|
SQL XML 弹性计算
【ECS生长万物之开源】搭建PostgreSQL主从架构
PostgreSQL被业界誉为最先进的开源数据库,支持NoSQL数据类型(JSON/XML/hstore)。本文档介绍在CentOS 7操作系统的ECS实例上搭建PostgreSQL主从架构的操作步骤。
|
监控 网络协议
2013-12-17 与外网串口服务器的delphi程序设计 随笔说说
2013-12-17 与外网串口服务器的delphi程序设计 随笔说说
260 0
|
SQL 关系型数据库 数据库
PostgreSQL 12 文档: 部分 V. 服务器编程
部分 V. 服务器编程 这部分关于使用用户定义的函数、数据类型、触发器等扩展服务器功能。这些是高级主题,读者应该在理解了有关PostgreSQL的所有其他用户文档之后才阅读这些主题。这一部分的后面一些章节描述PostgreSQL发布中可用的服务器端编程语言,以及与服务器端编程语言相关的一般性问题。在深入研究服务器端编程语言的材料之前,请至少阅读第 37 章中前几节(覆盖函数)。
228 0
|
10月前
|
弹性计算 运维 安全
阿里云轻量应用服务器与云服务器ECS啥区别?新手帮助教程
阿里云轻量应用服务器适合个人开发者搭建博客、测试环境等低流量场景,操作简单、成本低;ECS适用于企业级高负载业务,功能强大、灵活可扩展。二者在性能、网络、镜像及运维管理上差异显著,用户应根据实际需求选择。
831 10
|
10月前
|
弹性计算 ice
阿里云4核8g服务器多少钱一年?1个月和1小时价格,省钱购买方法分享
阿里云4核8G服务器价格因实例类型而异,经济型e实例约159元/月,计算型c9i约371元/月,按小时计费最低0.45元。实际购买享折扣,1年最高可省至1578元,附主流ECS实例及CPU型号参考。
869 8
|
10月前
|
运维 安全 Ubuntu
阿里云渠道商:服务器操作系统怎么选?
阿里云提供丰富操作系统镜像,涵盖Windows与主流Linux发行版。选型需综合技术兼容性、运维成本、安全稳定等因素。推荐Alibaba Cloud Linux、Ubuntu等用于Web与容器场景,Windows Server支撑.NET应用。建议优先选用LTS版本并进行测试验证,通过标准化镜像管理提升部署效率与一致性。

推荐镜像

更多