PostgreSQL实现了四种执行策略
PostgreSQL实现了四种执行策略:
(1)PORTAL_ONE_SELECT:如果用户提交的SQL语句中仅包含一个SELECT类型查询,则查询执行器会使用执行器来处理该SQL语句。换句话说,这种策略用于处理仅有一个可优化原子操作的情况。
(2)PORTAL_ONE_RETURNING(PORTAL_ONE_MOD_WITH):如果用户提交的SQL语句中包含一个带有RETURNING字句的INSERT/UPDATE/DELETE语句,查询执行器会选择这种策略。因为处理该类语句应该先完成所有操作(对元组的修改操作),然后返回结果(例如操作是否成功、被修改的元组数量等),以减少出错的风险。查询执行器在执行时,将首先处理所有满足条件的元组,并将执行过程的结果缓存,然后将结果返回。
(3)PORTAL_UTIL_SELECT:如果用户提交的SQL语句是一个功能类型语句,但是其返回结果类似SELECT语句(例如EXPLAIN和SHOW),查询执行器将选择这种策略。以此种策略执行时,同样首先执行语句并获取完整结果,并将结果缓存起来,然后将结果返回给用户。
(4)PORTAL_MULTI_QUERY:用于处理除以上三种情况之外的操作。从其名称中的“MULTI”就能够看出,这个策略更具有一般性,能够处理一个或多个原子操作,并根据操作的类型选择合适的处理部件。
简单来说,PORTAL_ONE_SELECT是用来处理SELECT语句的,该策略会调用执行器来执行;PORTAL_ONE_RETURNING
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
2019-10-09 HTTP长连接、短连接使用及测试
2018-10-09 2016-06-14 发布 解决Centos7初次开机提示Initial setup of CentOS Linux 7 (core)
2018-10-09 CentOS7安装sogou输入法