背景
1、产品的问题点
- PG 不支持index skip scan
2、问题点背后涉及的技术原理
3、这个问题将影响哪些行业以及业务场景
- 稀疏值的统计、去重. 例如在用户的行测试技术与信号处理为日志中, 求某个时间段的活跃用户(count distinct uid)
4、会导致什么问题测试技术基础?
- 性能较差
5、业务上应该如何避免这个坑
使用递归查询来解决这个问题:
- 《重新发现PostgreSQL之美 -c#为什么用的人很少 6 index链表跳跳糖 (CTE recursive 递归的详细用例)》
- 《递归开发者选项怎么关闭+排序字段c#委托加权 skip索引失效的几种情况和解决 scan 解决 窗口查询多列分组去重的性能问题》
- 《PostgreSQL 排序去重limit查询Oracle优化 - 递归 vs group分组 (loop降到极限, block scan降到极限)》
- 《PostgreSQL 递归妙用案例 - 分组数据去重与打散》
- 《PostgreSQL Oracle 兼容性之 - INDEX SKIP SCAN (递归查询变态优化) 非驱动列索引扫描优化》关系型数据库
- 《用PostgreSQL找回618秒逝去的青春 - 递归收敛优化》
- 《distinct xx和count(distinct xx)的变态递归优化方法 - 索引收敛(skip scan)扫描》
- 《P测试技术基础答案ostgreSQL雕虫小技cte 递归查询,分组TOP性c#委托能提升44倍》
- 《递归优化CASE - group by & distinct tuning case : use WITH RECURSIVE and min() function数据库》
- 《递归优化CASE数据库 - p索引erformance tuning case关系型数据库有哪几个 :use cursor\tc#和c++区别rig索引符号ger\recursive repla索引符号ce (grouc#是什么p by and order by) REDUCE needed blockes scan》
6、业务上避免这个坑牺牲了什么, 会引入什么新的问题
- SQL难度急剧增加, 一般开发者可能不会写递归SQL.
- 如果是框架生成的SQL则无法改写. 导致性能差.
7、数数据库原理据库未来产品迭代如何修复这个坑
- 希望引入index skip scan的功能, 直接在索引扫描层面解决, 而不是通过使数据库有哪几种用递归SQL来解决这个性能问题.
发表评论