首批通过分布式安全可靠测评,为关键业务系统打造
OBProxy 内存中存放的执行计划与 OceanBase 数据库中 Plan Cache 存放的执行计划区别
更新时间:2025-05-23 06:51
存储位置
OBProxy: OBProxy 内存中存放的执行计划主要是为了加速 SQL 请求的路由和处理,通常不会存储完整的执行计划,而是存储一些轻量级的元数据或路由信息。
OceanBase 数据库: Plan Cache 是存储在 OceanBase 数据库服务器上的,每个租户在每台服务器上都有一个独立的 Plan Cache,用于存储完整的执行计划。
功能
OBProxy: OBProxy 的主要功能是路由 SQL 请求到正确的 OceanBase 服务器,并进行负载均衡。它可能会缓存一些简单的路由信息或 SQL 请求的元数据,但不会存储复杂的执行计划。
OceanBase 数据库: Plan Cache 的主要功能是缓存 SQL 的执行计划,以便在下次执行相同的 SQL 时直接使用,避免重复的优化过程。
内容
OBProxy: OBProxy 内存中存放的内容通常是与 SQL 请求相关的路由信息、负载均衡策略等,而不是完整的执行计划。
OceanBase 数据库: Plan Cache 中存放的是完整的执行计划,包括物理算子、预估的行数、代价等信息。
生命周期
OBProxy: OBProxy 内存中的缓存信息通常是短暂的,可能会根据负载均衡策略或路由规则的变化而更新或淘汰。
OceanBase 数据库: Plan Cache 中的执行计划会根据 SQL 的执行频率、内存使用情况等进行自动淘汰或手动刷新。
使用场景
OBProxy: OBProxy 的缓存主要用于加速 SQL 请求的路由和处理,适用于高并发的 SQL 请求场景。
OceanBase 数据库: Plan Cache 主要用于减少 SQL 执行计划的生成次数,适用于复杂的 SQL 查询和优化场景。
适用版本
OceanBase 数据库所有版本。