场景说明
该场景属于“函数与表达式”,适用于 sql、mybatis。权威状态:待核验,不进入权威统计。
正向识别示例
以下均来自规则库中 should_hit=true 的合成公开示例,不是客户代码。
SELECT SQL_CALC_FOUND_ROWS * FROM t LIMIT 20
SELECT FOUND_ROWS()
21 个精确目标版本 / 模式
| 目标 | 支持度 | 证据等级 | 公开边界 | 深入核对 |
|---|---|---|---|---|
| OceanBase 4.3.5 MySQL 模式 | partial | doc_based | 未登记额外公开说明,按来源与验证步骤复核。 | 改造点 |
| openGauss 6.0 B 模式(Dolphin) | none | doc_based | 未登记额外公开说明,按来源与验证步骤复核。 | 改造点 |
展开 19 个 unknown / undeclared 结论
| 达梦 DM8 | unknown | unverified | 当前事实源不足,不推断兼容。 |
| GaussDB 505(ORA 模式) | unknown | unverified | 当前事实源不足,不推断兼容。 |
| GBase 8s | unknown | unverified | 当前事实源不足,不推断兼容。 |
| GoldenDB V6 | unknown | unverified | 当前事实源不足,不推断兼容。 |
| 瀚高 HGDB 4.5 | unknown | unverified | 当前事实源不足,不推断兼容。 |
| 人大金仓 KingbaseES V8 | unknown | unverified | 当前事实源不足,不推断兼容。 |
| OceanBase 4.2.5 MySQL 模式 | unknown | unverified | 当前事实源不足,不推断兼容。 |
| OceanBase 4.2.5 Oracle 模式 | unknown | unverified | 当前事实源不足,不推断兼容。 |
| OceanBase 4.3.5 Oracle 模式 | unknown | unverified | 当前事实源不足,不推断兼容。 |
| openGauss 5.0 A 模式 | undeclared | unverified | 当前事实源不足,不推断兼容。 |
| openGauss 6.0 A 模式 | undeclared | unverified | 当前事实源不足,不推断兼容。 |
| 磐维 PanWeiDB 2.0 | unknown | unverified | 当前事实源不足,不推断兼容。 |
| 磐维 PanWeiDB 3.0 A 模式 | unknown | unverified | 当前事实源不足,不推断兼容。 |
| PolarDB(Oracle 兼容)2.0 | unknown | unverified | 当前事实源不足,不推断兼容。 |
| PostgreSQL 16 + orafce 4.16 | undeclared | unverified | 当前事实源不足,不推断兼容。 |
| PostgreSQL 16 | undeclared | unverified | 当前事实源不足,不推断兼容。 |
| 神通数据库 7 | unknown | unverified | 当前事实源不足,不推断兼容。 |
| TDSQL Boundless | unknown | unverified | 当前事实源不足,不推断兼容。 |
| TiDB 8.5 | unknown | unverified | 当前事实源不足,不推断兼容。 |
改造与验证路径
推荐方向
app_side · 先按同一连接的前一条 SELECT 分支:带 SQL_CALC_FOUND_ROWS 时,只移除全局 LIMIT 并保留完整原查询关系,再用外层 COUNT(*) 计数;DISTINCT/GROUP BY/HAVING/UNION 必须保留在被计数的完整原关系结果内,不能退化为“同 WHERE 的 COUNT(*)”,且 UNION DISTINCT 的源值可能近似,需显式批准保留或收紧。无 SQL_CALC_FOUND_ROWS 时,FOUND_ROWS() 是前一条 SELECT 的实际返回行数(含 LIMIT 上限),应由驱动/分页层记录返回行数,禁止替换成无限制总数。COUNT(*) OVER() 仅用于已证明等价且非空页的简单关系,空页回退独立 COUNT
MySQL 8.0 已废弃该特性,库侧无等价承接 · 风险 manual
分页组件关联前一条 SELECT;按有无 SQL_CALC 分别读取实际返回行数或对移除全局 LIMIT 后的完整结果关系计数 · 风险 review
验收步骤
在同一连接与隔离级别下覆盖无 SQL_CALC、空页、尾页、offset、DISTINCT、GROUP BY/HAVING、UNION ALL/UNION DISTINCT 和并发写入;逐例比对源 FOUND_ROWS()、实际返回行数及改写计数,并对两查与窗口方案分别做计划和耗时对比