【DB吐槽大会】第12期 - 没有自动成本校准器

简介: 大家好,这里是DB吐槽大会,第12期 - 没有自动成本校准器

背景


1、产品的问题点

  • 不支持优化器成本计算系数自动调整

2、问题点背后涉及的技术原理

  • 数据库通过优化器来实现SQL执行计划的最佳选择, 通常最优的执行计划选择标准是代价最低. 而代价则是通过每一个执行node的成本叠加而来, 每一个执行node的成本计算又来自扫描方法(离散、顺序等)、JOIN方法、数据块的多少、返回记录的多少、操作符(函数)的计算次数等组成. 为了达到代价计算的准确性, 需要更丰富、及时的统计信息, 同时需要因子准确性(例如操作符的CPU计算耗费、离散IO、顺序IO等耗费的系数准确性). 如果系数不准确, 即使统计信息准确也无法得到最佳执行计划.

#seq_page_cost = 1.0                    # measured on an arbitrary scale  

random_page_cost = 1.1                  # same scale as above  

#cpu_tuple_cost = 0.01                  # same scale as above  

#cpu_index_tuple_cost = 0.005           # same scale as above  

#cpu_operator_cost = 0.0025             # same scale as above  

#parallel_setup_cost = 1000.0   # same scale as above  

#parallel_tuple_cost = 0.1              # same scale as above  

#min_parallel_table_scan_size = 8MB  

#min_parallel_index_scan_size = 512kB  

#effective_cache_size = 4GB  

3、这个问题将影响哪些行业以及业务场景

  • 所有行业

4、会导致什么问题?

  • 系数取决于硬件环境, 不同的硬件环境应该配置不同的系数, 例如机械盘的离散IO性能比顺序IO性能差很多, 然而SSD的离散IO和顺序IO性能差不多.
  • 系数配置不正确导致执行计划不准确, 性能差劲. 例如应该使用index scan的可能会使用seq scan或bitmap index scan.

5、业务上应该如何避免这个坑

  • 校准成本代价系数

6、业务上避免这个坑牺牲了什么, 会引入什么新的问题

7、数据库未来产品迭代如何修复这个坑

  • 希望有个硬件库对应的系数表, 或者可以根据环境自动化测试出对应的系数. 类似pg内置的pg_test_fsync, pg_test_timing工具.



相关文章
|
2月前
|
人工智能 自然语言处理 数据挖掘
AI时代来了!智能数据分析工具推荐与未来趋势
本文聚焦阿里云瓴羊Quick BI的AI进化,解析其“智能小Q”三大Agent如何实现自然语言问数、智能解读与自动报告,推动数据分析从“人找数据”迈向“数据找人”,助力企业构建高效、可信、可复用的数据决策闭环。(239字)
|
3月前
|
人工智能 自然语言处理 开发工具
网络支付合规三重门:Kimi Code、Cursor、GitHub Copilot等五款AI编程工具国内实战测评
本文实测Kimi Code、Cursor等5款AI编程工具在国内网络、支付、中文支持及数据合规等现实约束下的表现,从交互稳定性、代码生成质量、多语言/框架适配、调试能力、企业级落地五大维度提供务实选型建议,助力开发者避开“能用但不好用”陷阱。
|
7月前
|
算法 API 数据处理
闲鱼商品详情API数据解析
本API详解闲鱼商品详情接口(xianyu.item.get),涵盖标准返回结构、关键字段(num_iid、price、condition、seller等)、解析要点及常见坑,含MD5签名实现与错误处理示例,助力快速开发入库。
|
机器学习/深度学习 编解码 人工智能
计算机视觉五大技术——深度学习在图像处理中的应用
深度学习利用多层神经网络实现人工智能,计算机视觉是其重要应用之一。图像分类通过卷积神经网络(CNN)判断图片类别,如“猫”或“狗”。目标检测不仅识别物体,还确定其位置,R-CNN系列模型逐步优化检测速度与精度。语义分割对图像每个像素分类,FCN开创像素级分类范式,DeepLab等进一步提升细节表现。实例分割结合目标检测与语义分割,Mask R-CNN实现精准实例区分。关键点检测用于人体姿态估计、人脸特征识别等,OpenPose和HRNet等技术推动该领域发展。这些方法在效率与准确性上不断进步,广泛应用于实际场景。
1882 64
计算机视觉五大技术——深度学习在图像处理中的应用
|
人工智能 算法 数据可视化
“东方好莱坞”的AI革命:横店影视大模型如何改变拍电影?
“东方好莱坞”横店迎来AI革命!2025横店影视节发布“横店影视大模型”与AI影视生态中心,覆盖创作、拍摄、制作、宣发全流程。AI助力剧本生成、场景设计、特效制作,提升效率,推动产业升级。横店正构建全国领先的人工智能影视生态,探索技术与创意的深度融合,开启智能影视新时代。
614 0
|
SQL 存储 关系型数据库
什么是MySQL Workbench
【10月更文挑战第17天】什么是MySQL Workbench
2054 0
|
数据采集 存储 Web App开发
Python爬虫库性能与选型实战指南:从需求到落地的全链路解析
本文深入解析Python爬虫库的性能与选型策略,涵盖需求分析、技术评估与实战案例,助你构建高效稳定的数据采集系统。
1031 0
|
NoSQL Linux Redis
每天百万访问也不怕,Redis帮你搞定UV统计
本文介绍了使用Redis实现高性能UV统计系统的方法。Redis凭借其内存数据库特性,支持毫秒级响应和自动去重,非常适合高并发场景下的访客统计。核心思路是利用Redis的Set数据结构作为"每日签到墙",通过记录用户访问ID实现自动去重,并设置24小时过期时间。文章提供了Python代码示例,展示如何记录用户访问和获取当日UV统计数据,还可扩展实现多页面UV统计。相比传统数据库方案,Redis方案更加轻量高效,是中小型网站实现流量统计的理想选择。
944 0
|
数据采集 算法 测试技术
【硬件测试】基于FPGA的2ASK调制解调系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文介绍基于FPGA的2ASK调制解调系统,涵盖仿真效果、理论知识、Verilog核心程序及开发板使用说明。系统包含testbench、高斯信道模块和误码率统计模块,支持不同SNR设置。硬件测试版本增加了ILA在线数据采集和VIO在线SNR设置功能。2ASK调制通过改变载波振幅传输二进制信号,FPGA实现包括系统设计、Verilog编码、仿真测试和硬件部署。详细操作步骤见配套视频,代码适用于多种开发板,提供移植方法。
453 1
|
机器学习/深度学习 数据采集 人工智能
使用Python和Scikit-learn实现机器学习分类任务
使用Python和Scikit-learn实现机器学习分类任务
716 1

热门文章

最新文章