别再说查询慢了!我只用一个配置把老板的“你怎么这么慢“变成了“你怎么这么快“

非科班转行数据科学:从业务问题到模型落地的四阶跃迁 数据科学不是编程或算法的堆砌,而是将业务问题转化为可计算、可验证、可交付的数据解决方案的能力。其核心原理在于:以真实业务场景为起点,通过数据探查、特征工程、模型评估与工程部署形成闭环;技术价值体现在降低决策不确定性、提升运营效率与量化业务收益;典型应用场景覆盖零售缺货预警、医疗设备调度、教育辍学预测、制造业故障诊断等垂直领域。尤其对财务、教育、医疗、制造等非计算机背景从业者,领域经验本身就是高阶特征工程的源泉。本文聚焦‘能跑通代码’到‘能交付结果’的关键断层,拆解真实项目驱动的学习路径与工程化补位策略。 阅读详情

“这是一个关于速度与激情的故事…
每个数据分析师都经历过那种焦虑的时刻:深夜,办公室里只剩下键盘敲击的声音,眼睛紧盯着屏幕上的进度条,等待查询结果加载。就在这时,老板的消息突然弹出:“报表怎么还没好?客户等急了!”
谁说查询优化就一定要改写复杂的SQL?谁说提升性能就必须堆硬件?
今天,我要告诉你一个堪比"速度与激情"的黑科技 - Doris SQL Cache。
它像F1赛车的氮气加速系统,按下按钮,瞬间提速!不信?有位同学就用它把15秒的查询响应时间降到了0.5秒,老板笑得合不拢嘴…
别着急,先泡杯咖啡,听我慢慢道来这项Cache科技的有趣故事。”

[tu]

Doris SQL Cache:让查询飞一般的快

在某一个寒冷的清晨,小张刚走进办公室,打开电脑准备开始一天的工作。突然,他收到了老板的紧急消息:

“小张,昨天的销售数据分析报表怎么这么慢?客户等了好久才看到数据!”

小张挠了挠头,打开Doris管理后台,仔细研究起来。他发现每次查询都要重新计算,即使是相同的查询也不例外。这时,他想起了一个神奇的功能 - Doris SQL Cache,是 Doris 提供的一种查询优化机制,可以显著提升查询性能。它通过缓存查询结果来减少重复计算,适用于数据更新频率较低的场景。

[]

通过开启SQL Cache,第二次查询时间从原来的15秒直接降到了1秒以内!老板看到改进后的效果,露出了满意的笑容。

SQL Cache工作机制

[tu]

当查询请求发送到Doris,SQL Cache就像一个智能管家,它会记住查询的每一个细节:SQL文本、表的版本、分区信息,甚至用户变量。这些信息组合起来形成一个独特的身份标识,就像每个人独一无二的指纹。

BE节点则像图书馆的书架,通过一致性哈希算法,将查询结果整齐地存放在内存中。FE节点则充当着管理员的角色,它知道每个"书"放在哪个"书架"上,需要时可以快速找到。

内存管理的艺术

SQL Cache使用了巧妙的内存管理策略。BE节点上的缓存似一个弹性的气球,可以根据需要自动伸缩。当内存占用超过设定阈值时,系统会优先清理最久未使用的缓存,就像图书馆定期清理无人问津的旧书一样。

FE节点采用弱引用机制存储缓存元数据,当内存紧张时,垃圾回收器会自动释放这些数据,就像公寓管理员在空间不足时,会请走一些临时居住的客人。

性能监控与优化

监控SQL Cache的性能就像给汽车做体检。通过HTTP接口,我们可以随时查看缓存的命中率、内存占用等关键指标。:

在 FE 的 HTTP 接口 http:// F E I P : {FE_IP}: FEI​P:{FE_HTTP_PORT}/metrics 会返回两个相关指标:

# 代表已经把 1 个 SQL 写入到缓存中
doris_fe_cache_added{type="sql"} 1

# 代表命中了两次 SQL Cache
doris_fe_cache_hit{type="sql"} 2

# 注意
以上指标统计的是命中次数,只增不减,当 FE 重启后从 0 开始统计。

在 BE 的 HTTP 接口 http:// B E I P : {BE_IP}: BEI​P:{BE_HTTP_PORT}/metrics 会返回相关信息:

# 代表当前 BE 的内存中存在 1205 个 Cache
doris_be_query_cache_sql_total_count 1205

# 当前所有 Cache 占用 BE 内存 44k
doris_be_query_cache_memory_total_byte 44101

# 注意
不同的 Cache 可能会存放到不同的 BE 中,因此需收集所有 BE 的 Metrics 才能得到完整信息。


精准定位问题

SQL Cache失效并不可怕,关键是要找到原因。就像医生看病一样,我们要通过各种"症状"来诊断,缓存失效原因一般包括以下几点:

  • 表/视图的结构发生了变化,例如执行了 drop table、replace table、alter table 或 alter view 等操作。
  • 表数据发生了变化,例如执行了 insert、delete、update 或 truncate 等操作。
  • 用户权限被移除,例如执行了 revoke 操作。
  • 使用了非确定函数,并且函数的评估值发生了变化,例如执行了 select random()。
  • 使用了变量,并且变量的值发生了变化,例如执行了 select * from tbl where dt = @dt_var。
  • Row Policy 或 Data Masking 发生了变化,例如设置了用户对某些表的部分数据不可见。
  • 结果行数超过了 FE 配置的 cache_result_max_row_count,默认值为 3000 行。
  • 结果大小超过了 FE 配置的 cache_result_max_data_size,默认值为 30MB。

通过这些检查,我们就能快速找到问题所在,并采取相应的优化措施。

调优技巧与实战案例

记得有一次,小张接到一个棘手的需求:分析过去一年的用户行为数据。这个查询涉及大量数据,需要复杂的多表关联,每次执行都要十几分钟。让我们看看他是如何运用SQL Cache来解决这个问题的。

首先,让我们创建一个架构优化图:

[tu]

精准调优四部曲

小张首先检查了现有的配置,发现几个问题:

SHOW VARIABLES LIKE '%cache%';

BE节点的内存设置过小:

query_cache_max_size_mb = 64  # 默认值偏小
query_cache_elasticity_size_mb = 32

立即调整为更合理的配置:

-- 当 Cache 的内存空间超过 query_cache_max_size_mb + query_cache_elasticity_size_mb 时,  
-- 释放最近最久未使用的 Cache,直至占用内存低于 query_cache_max_size_mb。  
query_cache_max_size_mb = 256  
query_cache_elasticity_size_mb = 128

另外还可以在 FE 中配置,当结果行数或大小超过某个阈值时,不创建 SQL Cache:

-- 默认超过 3000 行结果时,不创建 SQL Cache。  
ADMIN SET FRONTEND CONFIG ('cache_result_max_row_count'='3000');  
  
-- 默认超过 30M 时,不创建 SQL Cache。  
ADMIN SET FRONTEND CONFIG ('cache_result_max_data_size'='31457280');

接着优化查询语句,将频繁变化的时间函数替换为日期范围:

-- 优化前
SELECT * FROM user_behavior WHERE create_time >= NOW() - INTERVAL 7 DAY;

-- 优化后
SELECT * FROM user_behavior WHERE dt >= DATE_SUB(CURRENT_DATE(), 7);

案例实战:大促数据分析

双十一期间,电商平台需要实时监控各个商品类目的销售情况。这类查询具有明显特点:

  • 查询频率高
  • 数据量大
  • 多维度聚合

小张采用以下策略:

1.预热关键查询

-- 提前执行热点查询
SELECT 
    category_id,
    SUM(sales_amount) as total_amount,
    COUNT(DISTINCT user_id) as buyer_count
FROM sales_detail
WHERE dt = CURRENT_DATE()
GROUP BY category_id;

2.设置合理的缓存参数

-- 增加缓存结果上限
ADMIN SET FRONTEND CONFIG ('cache_result_max_row_count'='10000');

3.监控缓存效果

-- 检查缓存命中情况
curl http://${FE_IP}:${FE_HTTP_PORT}/metrics | grep doris_fe_cache

优化效果:

  • 查询响应时间从平均15秒降至0.5秒
  • CPU使用率降低40%
  • 内存使用平稳,无明显波动

踩坑解惑

小张在优化过程中也遇到过一些典型问题:

缓存忽然失效?

检查发现是因为使用了CURRENT_TIMESTAMP函数,导致每秒都会生成新的缓存。改用CURRENT_DATE后问题解决。

缓存命中率低?

原来是查询中包含了ORDER BY RANDOM(),这种非确定性函数会导致缓存失效。改用固定的排序规则后,命中率提升到95%。

运维最佳实践

持续监控是确保SQL Cache高效运转的关键:

  1. 建立监控看板,实时展示:
  • 缓存命中率
  • 内存使用情况
  • 查询响应时间分布
  1. 设置告警阈值:
  • 命中率低于80%告警
  • 内存使用超过90%告警
  • 响应时间超过阈值告警
  1. 定期清理:
-- 周期性清理过期缓存
ADMIN SET FRONTEND CONFIG ('expire_sql_cache_in_fe_second'='86400');

琢磨了这么多SQL Cache的玄机,你是否也想到了自己系统中可以优化的地方?别着急,先在测试环境试试水。记住,调优如同煮茶,火候要恰到好处。

第6.5章:Doris查询加速——Join优化原理 阅读详情

相关推荐

第6.6章:Doris查询加速——单节点实现数万 QPS,高并发点查

第6.6章:Doris查询加速——高并发点查原理

爱吃辣条的博客 3834

Doris使用及优化(1.2.6 - 2.0.2 release)

Doris的使用及优化经验,持续更新,欢迎投递。

weixin_43983455的博客 9650

Python列表转字符串:5种方案选型与6大生产场景实战

字符串拼接是Python中最基础的数据转换操作,其本质涉及类型系统、内存分配机制与编码协议。`str.join()`凭借单次内存预分配和C层优化,成为线性拼接的首选方案;而`repr()`、`json.dumps()`则分别服务于调试语义与跨语言序列化需求。在Web表单提交、SQL IN子句构造、日志聚合等高频工程场景中,需结合`shlex.quote()`防命令注入、`csv.writer`保格式合规、`safe_join()`做空值防御等技术手段。本文聚焦`join`性能拐点、非字符串元素转换、Unic

weixin_34408717的博客 358

知乎运营分析平台 — 舰桥平台如何通过 Apache Doris 实现查询速度 10+ 倍提升?

导读:知乎为实现精细化运营,提高运营效率,依赖 Apache Doris 构建了内部统一的运营分析平台——舰桥平台,主要应用于事实接入层、事实建模层和事实运算层等架构核心层的建设,并持续对导入、查询等方面进行性能调优,最终实现上千亿行数据分钟级导入,千亿级数据秒级查询响应。该平台当前已经广泛应用于知乎不同事业部的社区、商广、教育&会员、技术中台等领域,得到各部分广泛认可。作者知乎舰桥平台 Leader 侯容。

SelectDB 3018

AI落地平衡术:在技术、业务与组织三坐标系中建模

人工智能落地不是单纯的技术实现问题,而是涉及模型能力边界、业务ROI验证和组织信任构建的系统性工程。其核心在于理解大模型在真实场景中的可信度阈值、人机责任边界的物理化表达,以及增量价值的可验证切片。当企业面临‘用得多不放心、用得少怕掉队’的普遍困境时,关键不在于追求更高准确率或更快响应,而在于建立技术-业务-组织三维映射模型,识别当前瓶颈轴并精准发力。本文聚焦AI从实验室走向产线过程中的非技术阻力破解,提供可信度量化锚定、UI层责任固化、价值原子验证等可复用方法论,适用于金融、法律、医疗、制造等高确定性要求

weixin_33769125的博客 641

数据库选型实战指南:从数据形态到扩展路径的决策树

数据库选型本质是面向数据生命周期的技术预判,而非功能罗列。它始于对数据形态确定性、读写负载分布、一致性颗粒度和扩展物理约束的四维拆解;核心在于匹配业务真实访问模式——如时间序列需顺序写优化,多跳关联依赖图遍历效率,强模式演进要求Schema灵活,跨地域低延迟读写则考验分布式事务能力。技术价值体现在降低运维复杂度、减少开发心智负担、缩短故障定位链路;典型场景覆盖IoT遥测、金融风控、SaaS多租户、实时热搜与内容聚合。本文基于生产环境12项硬指标实测,聚焦数据库选型与NoSQL vs SQL落地边界。

500

运维江湖的五大“门派”,你属于哪一派?

这可不是个“一个萝卜一个坑”的岗位,里头门派林立,各怀绝技。所以,下次再遇到运维同学,别再说他们只是“修电脑的”了。他们可能是守护数据宝藏的管家,是保障网络畅通的交警,是抵挡黑客攻击的卫士,更是业务背后的隐形守护者。运维的江湖,波澜壮阔,充满挑战与智慧。打破开发和运维之间的墙,通过自动化(CI/CD流水线)让代码从写到上线,像流水线一样顺畅。他们是IT地基的守护者。他们是数字世界的“白帽子黑客”,在黑暗中与攻击者过招。他们是最贴近业务的运维,业务能不能跑,跑得快不快,体验好不好,他们负直接责任。

微信公众号:互联网之路 429

Jupyter笔记本生产化:从能跑到可用的工程契约实践

机器学习模型部署不仅是将Notebook打包成API,更是建立可测量、可验证、可回滚的工程契约。其核心原理在于统一输入/计算/输出规范,通过代码强制约束数据类型、特征一致性与响应行为,从而保障服务稳定性与业务连续性。技术价值体现在降低线上故障率、提升跨团队协作效率,并支撑高并发、低延迟、强合规的工业级场景。典型应用包括推荐系统、风控引擎与实时个性化服务。本文聚焦ML模型部署与生产化验证两大关键环节,提供从本地开发到K8s上线的全链路落地方法。

weixin_30819085的博客 425

DeepSeek-R1-Distill-Llama-8B在AIGC领域的惊艳表现

本文介绍了如何在星图GPU平台上自动化部署DeepSeek-R1-Distill-Llama-8B镜像,高效支撑AIGC文本创作任务。该模型可快速生成技术文档、创意文案及结构化报告,适用于开发者撰写用户手册、市场人员产出营销内容等典型场景,显著提升专业内容生产效率。

weixin_30789053的博客 230

GPT-4o Mini不是缩水版:128K上下文+多模态的日常AI生产力引擎

大语言模型(LLM)的核心价值不仅在于参数规模,更在于上下文理解能力与多模态协同效率。GPT-4o Mini以128K长上下文和原生视觉理解为基础,突破传统小模型在复杂任务中的记忆断层与语义失真问题,实现对政策文档、会议纪要、收据图像等真实办公素材的端到端精准解析。其技术价值体现在高稳定性推理、低延迟响应与函数调用驱动的自动化集成能力,广泛应用于智能客服知识库、自动周报生成、GDPR合规邮件起草等高频办公场景。尤其在需融合文本、表格、截图、语音线索的复合型任务中,GPT-4o Mini展现出远超GPT-3.

chikuai9995的博客 774

DeepSeek V4工程级实测:MoE架构与FlashAttention-3深度优化解析

大语言模型推理性能受限于计算效率、显存带宽与KV缓存管理三大物理瓶颈。混合专家(MoE)架构通过语义感知的动态路由实现计算资源精准分配,显著提升长上下文下的负载均衡性;FlashAttention-3并非简单库替换,而是针对GPU内存访问模式的底层重构,结合prefetch hint与sliding window机制大幅拉升HBM利用率。这些技术突破共同支撑了低延迟、高吞吐、低成本的工业级部署,尤其适用于客服实时生成、SQL逻辑推导与教育多文档推理等强稳定性需求场景。本文基于A100集群真实压测数据,揭示D

dielucui7698的博客 507

4款报表工具功能对比,哪款最实用?

都2021年了,别再说不会做报表了,选对报表工具分分钟做出让老板、客户都满意的报表。 可市面上的报表工具那么多该如何选择呢?别急,本文将从以下几个方面对市面上的五款热门报表工具进行分析,帮助你选出最适合自己的报表工具。报表工具不选贵的,只选对的! 四款热门报表工具: 一、Smartbi报表工具 1.简介:深度数据建模,为企业提供预测能力,支持文本分析、五大类算法和数据预处理,并为用户提供一站式的流程式建模、拖拽式操作和可视化配置体验。 2.最佳功能:对开发人员很友好,设计界面时尚,相对于其他工具要花费大量

明月说数据 2480

AI创业七大致命断点:从数据负债到客户行为洞察的实战清单

AI系统本质上是算法与现实世界的接口工程,其落地成败不取决于模型精度,而在于数据可信度、环境一致性、不确定性量化、运维可持续性、工作流嵌入深度、合规前置设计及客户行为反馈闭环等基础能力。这些能力共同构成AI产品在金融、制造、医疗、政务等强约束场景中实现商业交付的技术底座。尤其当面对‘数据可用率不足’‘POC环境造假’‘黑箱决策恐惧’‘GPU驱动意外回滚’等高频故障时,问题根源往往横跨物理层、协议层与应用层,需用可测量、可验证、可契约化的工程手段应对。本文提炼出AI创业从立项到交付全周期中七个不可绕行的实操断

weixin_34342905的博客 342

挨踢项目中的四维设计法:架构、模块、数据库与体验协同求生

在IT项目管理中,'挨踢项目'特指需求模糊、技术不确定、工期与预算双紧的高危交付场景。设计在此类项目中并非可选环节,而是将业务目标转化为可执行、可验证、可度量技术决策的关键成本转化器。其核心价值在于前置识别风险、收敛返工成本、保障关键路径稳定性。通过架构设计划定红黄绿生存区、模块设计明确契约边界、数据库设计锚定业务状态机、用户体验设计消除操作歧义,形成覆盖全链路的防御体系。本文聚焦实战导向的四维协同方法论,为中小型团队提供可落地的设计决策框架。

ciyinzhi8788的博客 804

【Doris】31问-最全的Apache Doris的性能优化实战技巧(收藏版)

随着 Apache Doris 在越来越多的企业中得到落地和应用,越来越多用户开始关注如何在海量数据下对Doris的查询性能进行优化。有哪些性能优化的小技巧?如何降低查询耗时?数据模型和分区分桶策略该如何设计?针对慢查询该如何进行分析及优化?来自百度的资深研发工程师、Apache Doris PPMC 缪翎,与大家一起探讨 Apache Doris 性能优化实战技巧,包括但不限于:慢查询定位、Profile 解读及SQL优化;数据模型、索引及分区分桶策略设计;物化视图及Rollup使用技巧;Doris查询优

m0_54252387的博客 1万+

高速SerDes均衡技术解析

均衡技术是高速SerDes链路中补偿信道损耗和失真的核心技术,通过FFE、CTLE和DFE三种主要方法对抗码间干扰(ISI)。FFE在发射端预补偿前光标干扰,CTLE通过提升高频增益补偿信道损耗,DFE则精准消除后光标干扰。三种技术各具优势:FFE实现简单且不放大噪声,CTLE功耗低易于集成,DFE能自适应调整且保持信噪比。这些技术协同工作可有效提升系统传输速率和可靠性。

一只豌豆象的博客 1948

企业级大模型主权落地:数据不出域、逻辑可解释、响应可定制

生成式AI在企业落地的核心挑战,早已超越模型能力本身,转向对AI主权的系统性掌控——即确保数据安全可控、业务逻辑透明可干预、输出结果精准可定制。这背后涉及RAG架构设计、提示词工程化管理、权限感知检索、领域知识注入等关键技术实践。尤其在金融、制造、医疗等强合规行业,‘数据不出域’与‘响应能定制’已成为不可妥协的底线。本文聚焦企业真实IT治理框架下的可行性路径,提供从知识库构建、模型选型到可观测运维的全链路落地方案,帮助AI工程负责人在预算有限、法务严控、业务多变的复杂环境中,构建稳定交付价值的最小可行主权单

weixin_33675507的博客 905

Python爬取天天基金网历史数据

前言 最近开始学习基金????,感觉需要收集一些数据统计分析才靠谱????毕竟给A股交学费的感觉可不好受???? 网上有很多公开的数据,我这里选择的是天天基金网进行爬取 页面分析 接口我分析过了,有些验证不太好获取数据,所以直接从html提取 在天天基金网中随便选择一款基金,然后点击进入历史数据页面 容易定位出日增长率的css选择器 还有翻页按钮 程序编写 使用selenium打开chrome浏览器进行爬取,全代码如下 from selenium import webdriver from sel

JiajunBernoulli的博客 2950

数据库查询慢的原因

●查询速度慢的原因很多,常见如下几种: 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)8、sp_lock,sp_who,活动的用户查看,原因是

新博客地址: zhangl.in 1181

四、ARDUINO UNO开发板介绍

(一)ARDUINO UNO开发板 Arduino生态中包括多种开发板、模块、扩展板。其中UNO R3是最适合入门且功能齐全使用量最多的Arduino开发板。以下就是Arduino UNO R3开发板的图片。 (二)ARDUINO UNO开发板基本构成 Arduino开发板设计得非常简洁,一块AVR单片机、一个晶振或振荡器和一个5V的直流电源。常见的开发板通过一条USB数据线连接计算机。Arduino有各式各样的开发板,其中最通用的是Ardui...

简时刻的博客 7万+

C2000 ePWM与SDFM同步配置:从寄存器到Driverlib实战解析

在嵌入式实时控制系统中,脉宽调制(PWM)是实现电机驱动、数字电源等应用的核心技术,其信号质量和时序精度直接决定了系统性能。为实现精确控制,PWM信号常需与模数转换器(ADC)或Sigma-Delta滤波器(SDFM)的采样时刻严格同步,以消除开关噪声并获取准确的反馈信号。其技术原理在于通过硬件同步机制,将PWM的特定时间点(如周期中心)作为触发源,控制数据采集的启动时刻。这种硬件级同步能有效提升闭环控制的稳定性和动态响应速度,广泛应用于伺服驱动、变频器等高性能场景。本文聚焦于TI C2000系列微控制器,

weixin_33692284的博客 446

Coffee都喝了三杯,查询还在跑...别担心!老王这儿有本Doris加速秘笈

Coffee都喝了三杯,查询还在跑...别担心!老王这儿有本Doris加速秘笈

yzData的博客 1800

ESP32-C3入门教程 问题篇⑳——subprocess.CalledProcessError: Command ‘[‘D:\\.espressif\\python_env\\idf5.4_py3.

ESP32-C3入门教程 问题篇⑳——subprocess.CalledProcessError: Command '['D:\\.espressif\\python_env\\idf5.4_py3.

773
上一篇: 当数据工程师遇上“Doris魔法视图“,性能飞升的背后藏着什么?
下一篇: 老板说要支持70万QPS?一位数据魔芋师的咸鱼翻身记
一臻数据
博客等级 码龄4年 671粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值