新特性解读 | 针对用户定制不同格式执行计划

OpenVAS漏洞扫描实战:从Docker部署到报告解读全指南 漏洞扫描是网络安全防御体系的基础环节,其核心原理是通过自动化工具模拟攻击行为,检测系统中存在的安全弱点。这项技术通过持续更新的漏洞数据库(如CVE)和检测插件,结合CVSS评分体系量化风险,为安全防护提供关键决策依据。在工程实践中,开源漏洞评估系统因其成本效益和可定制性,成为企业构建主动防御能力的重要工具。本文以OpenVAS为例,详细解析基于Docker容器的部署方案,涵盖目标配置、扫描策略定制等核心操作,并针对漏洞报告解读与修复优先级判定提供实战模型,帮助安全团队高效落地漏洞管理流程。 阅读详情

作者:杨涛涛

资深数据库专家,专研 MySQL 十余年。擅长 MySQL、PostgreSQL、MongoDB 等开源数据库相关的备份恢复、SQL 调优、监控运维、高可用架构设计等。目前任职于爱可生,为各大运营商及银行金融企业提供 MySQL 相关技术支持、MySQL 相关课程培训等工作。

本文来源:原创投稿

*可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。


记得以前在项目现场时,客户曾提出一个这样的需求:在 MySQL 数据库里查看语句的执行计划,能否针对不同的用户使用同样的语句定制输出不同的格式?比如用户张三不想执行 explain format=‘tree’ ,只想简单执行 explain就可以输出tree 格式的执行计划;同样用户李四也不想执行 explain format=‘json’ ,只想简单执行 explain就可以输出 json 格式的执行计划。

好吧!当时MySQL 没有提供这样的功能,而且我也觉得这样的功能非必需,于是我给了三个可选方法:
第一: 自己写个脚本对 MySQL 客户端进行封装;
第二:建议直接用 SHELL 来调用 MySQL 客户端,并且定制类似 SHELL 的别名;
第三:别偷懒…。
最后经过一系列探讨,客户选择了选项三!

不过幸运的是,最新版本 MySQL 8.0.32 最近发布,提供了这样的功能。用一个变量来针对不同的用户可以定制输出不同格式的执行计划,变量名为:explain_format 。通过设置不同的值,来使得 explain 语句 输出不同格式的执行计划。

我们来体验下这个功能:
设置默认格式为 tree 。
mysql:8.0.32-cluster:ytt>set @@explain_format=tree;
Query OK, 0 rows affected (0.00 sec)

<mysql:8.0.32-cluster:ytt>explain table t1\G
*************************** 1. row ***************************
EXPLAIN: -> Table scan on t1  (cost=1.20 rows=2)

1 row in set (0.00 sec)
设置默认格式为 traditional ,也就是传统模式。
mysql:8.0.32-cluster:ytt>set @@explain_format=traditional;
Query OK, 0 rows affected (0.00 sec)

<mysql:8.0.32-cluster:ytt>explain table t1\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: t1
   partitions: NULL
         type: ALL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 2
     filtered: 100.00
        Extra: NULL
1 row in set, 1 warning (0.00 sec)
有了这个功能,就仿佛奥特曼看到了光。 那接下来,我们来实现本篇开头的需求:语句相同,用户不同,执行计划的输出格式不同。

新建两个用户,一个是 zhangsan ,另外一个是 lisi 。zhangsan 的执行计划格式为:explain format=‘tree’ ; lisi 的执行计划格式为:explain format=‘json’ 。

分别创建这两个用户:

mysql:8.0.32-cluster:ytt>create user zhangsan;
Query OK, 0 rows affected (0.00 sec)

<mysql:8.0.32-cluster:ytt>create user lisi;
Query OK, 0 rows affected (0.01 sec)

<mysql:8.0.32-cluster:ytt>grant select on ytt.* to zhangsan;
Query OK, 0 rows affected (0.01 sec)

<mysql:8.0.32-cluster:ytt>grant select on ytt.* to lisi;
Query OK, 0 rows affected (0.01 sec)

用户 zhangsan 连接 MySQL 后,自动设置执行计划格式:

root@ytt-super:/home/ytt# mysql -uzhangsan --init-command='set @@explain_format=tree' -D ytt
...
<mysql:8.0.32-cluster:ytt>explain table t1\G
*************************** 1. row ***************************
EXPLAIN: -> Table scan on t1  (cost=1.20 rows=2)

1 row in set (0.00 sec)

同样的方法,用户 lisi 则这样连接 MySQL :结果太长,我就不贴了。

root@ytt-super:/home/ytt# mysql -ulisi --init-command='set @@explain_format=json' -D ytt
MySQL慢查询优化实战:从EXPLAIN读懂执行计划与索引设计 在大数据量业务场景下,SQL慢查询是后端开发最常见的性能瓶颈之一。理解数据库执行计划是优化查询的基础,而MySQL的EXPLAIN工具则是剖析执行计划的核心手段。通过解读type、rows、Extra等关键字段,可以快速识别全表扫描、索引失效、临时表排序等隐患。在实际工程中,结合慢查询日志定位高频问题,再基于EXPLAIN输出设计合理的联合索引,能显著提升SQL执行效率。本文从执行计划的基本概念出发,拆解各字段含义,并通过真实案例演示从慢查询发现到索引落地的完整优化链路,帮助开发人员建立系统的性能调优思维。 阅读详情

相关推荐

Claude Opus 4.7:从智能助手到可工程化执行引擎的范式跃迁

大语言模型正从‘拟人化对话伙伴’转向‘可编程、可审计、可预测’的专业执行单元。这一演进以Anthropic推出的Opus 4.7为标志性节点,其核心在于将宪法式安全约束(Constitutional AI)编译为推理硬规则,强制模型严格遵循用户显式指令,杜绝意图推断与自由发挥。技术价值体现在确定性增强、任务可控性提升及合规可追溯性强化;典型应用场景覆盖金融合同审查、高精度财报OCR解析、CI/CD集成式代码生成与多角色协同代码审查(/ultrareview)。对开发者而言,适配关键在于从‘对话式提示’升级为

weixin_34008784的博客 356

MySQL定制化执行计划的功能

MySQL不同版本,提供了很多新的特性,有些改动可能小,但确实能解决我们的实际问题,例如杨老师的这篇文章《新特性解读 | 针对用户定制不同格式执行计划》,就给我们引入了执行计划的定制化路径。曾经有客户提出这样的需求:在MySQL数据库里查看语句的执行计划,能否针对不同的用户使用同样的语句定制输出不同的格式?例如用户张三不想执行explain format='tree',只想简单执行explain就...

bisal的专栏 317

C++26新特性解析:静态反射、模式匹配与std::hive容器实战指南

C++作为高性能计算和系统编程的核心语言,其标准演进始终围绕零成本抽象与硬件映射的核心哲学。新版本通过引入编译期元编程、结构化条件分支和高效内存管理等底层机制,持续提升开发效率与代码安全性。静态反射允许在编译时获取类型信息,为序列化、ORM等场景提供原生支持;模式匹配则通过inspect语法实现更安全、更具表达力的条件分支。这些特性在高性能计算、游戏引擎和嵌入式系统等对执行效率与内存控制有严苛要求的领域具有重要价值。本文聚焦C++26中的静态反射、模式匹配及std::hive容器,结合具体代码示例,解析其设

weixin_33836874的博客 391

Giter8未来展望:路线图与新特性深度解读

Giter8作为一款强大的命令行模板生成工具,正站在技术演进的关键节点。这款基于Scala开发的工具能够从GitHub或任何Git仓库应用模板生成文件和目录,为开发者提供了高效的项目脚手架创建方案。随着软件开发行业的快速发展,Giter8的未来发展路线图备受社区关注。本文将深度解读Giter8的演进方向、规划中的新特性以及技术发展趋势,帮助用户了解这款模板工具的完整发展蓝图。 ## 🚀 Git

gitblog_00422的博客 480

Back In Time 2.0.0 RC1:Linux桌面版Time Machine,图形化自动备份与文件历史管理

文件备份与版本管理是数据安全与工作流效率的核心基础。其原理在于通过自动化工具定期创建数据快照,利用硬链接等技术实现高效的存储复用。这项技术的价值在于为误删、覆盖或系统故障提供即时恢复能力,保障数据连续性。在应用场景上,它尤其适合需要频繁回溯文件历史、管理个人文档或开发环境的桌面用户与工程师。Back In Time 正是这样一款专注于Linux桌面的图形化自动备份工具,其新发布的2.0.0 RC1版本带来了底层技术栈升级和快照格式优化,旨在提供类似macOS Time Machine的“设置后即忘”的流畅体

weixin_30352191的博客 478

DSH版本管理:区分日常更新与正式发布,稳定集成AI Agent项目

在AI开发工具领域,版本管理是保障项目稳定性的核心环节。其原理基于语义化版本控制,通过主版本号、次版本号和修订号的组合,明确传达API变更的兼容性级别。这一机制的技术价值在于平衡快速迭代与系统稳定,使开发者能够有效管理依赖风险。在AI Agent开发、模型集成测试等应用场景中,工具链的稳定性直接影响生产环境的可靠性。本文聚焦DSH这一快速发展的AI开发工具,针对其频繁的功能迭代,深入解析如何区分日常更新与正式版本发布。通过关注版本号语义、插件生态稳定性等关键指标,开发者可以避免被‘dify failed t

weixin_33827731的博客 391

Sentinel - 官方 Roadmap 解读:2.x 新特性与云原生方向

Sentinel 2.x 新特性与云原生方向解读 本文深入分析阿里巴巴开源的流量治理组件Sentinel 2.x版本的演进方向。作为云原生时代的流量治理中心,Sentinel 2.x引入了基于规则引擎的全新架构,支持Kubernetes深度集成,提供API级别的精细化控制,并增强了可观测性和扩展性。文章详细解读了其核心新特性,包括规则引擎架构设计、K8s原生支持、API级别控制能力、性能优化等,并通过Java代码示例展示实际应用场景。Sentinel 2.x通过模块化设计和云原生适配,为构建现代化微服务体系

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

smartctl源码解析与实战:硬盘SMART健康监控从入门到精通

SMART(自我监测、分析和报告技术)是硬盘内置的健康监测系统,通过监控温度、重映射扇区、读写错误率等关键参数,实现对硬盘物理状态的实时评估。其技术原理在于硬盘固件持续收集底层硬件指标,当参数异常或达到阈值时提前预警潜在故障。在数据安全领域,主动的硬盘健康监测已成为保障业务连续性的基础实践,能够有效避免因硬盘突然损坏导致的数据丢失灾难。通过smartctl这一开源命令行工具,用户可以获取并解读SMART原始数据,实现从单机检查到自动化监控的完整解决方案。本文聚焦smartctl源码结构、编译部署与实战应用,

weixin_34268753的博客 397

MySQL-8.0.20

版本: 8.0.20 操作: Centos 7 Linux 未介绍针对数据库的详细操作,如有需求请前往 第一章 MySQL的介绍及安装 1、介绍 1.1 数据库管理系统(DBMS) RDBMS : Oracle SQLServer DB2 MySQL NoSQL : Redis MongoDB ES NewSQL: PolarDB OceanBase TDB TiDB 1.2 排名 db-engines.com/ranking 1.3 MySQL 介绍 1.3.1 如何获取软件 www.my

有用的话关个注,点个赞,收个藏🫶。 664

深度解读 Android 16 首个开发者预览版:全新功能与未来展望

Android 16的首个开发者预览版为我们勾勒了未来Android系统的蓝图。从核心功能的增强到隐私保护的加强,再到开发者工具链的优化,这一版本无疑将引领Android生态进入一个新阶段。作为开发者,你准备好拥抱这些变化了吗?让我们一起期待Android 16带来的全新可能性!通过这篇文章,希望你对Android 16的特性有了更加全面的了解。如果你对某些功能或API有具体问题,欢迎在评论区留言,我们将共同探讨!

虎哥LoveDroid 1514

[AHK] 自动化获取通达信股票代码:从消息钩子到数据提取

本文详细介绍了如何使用AHK(AutoHotkey)通过Windows消息钩子技术自动化获取通达信股票代码,实现高效数据提取和交易自动化。文章涵盖消息机制原理、AHK脚本开发、性能优化及安全注意事项,为股票交易者提供了一套完整的解决方案。

weixin_42614269的博客 616

IvorySQL 5.3深度解析:基于PG 18.3内核的Oracle兼容与全场景实践

数据库内核升级是提升系统性能和扩展功能边界的关键技术路径。其核心原理在于集成上游社区的最新优化,如查询执行器增强、并行处理改进以及更智能的维护机制,从而在事务处理效率、资源利用率和可观测性上获得显著提升。对于企业级应用而言,这种底层跃迁的技术价值在于能够更稳定地支持高并发OLTP场景,并为复杂分析查询(OLAP)和混合负载(HTAP)提供更好的基础。特别是在需要从传统商业数据库(如Oracle)向开源体系迁移或寻求更高可控性的场景中,一个兼具最新内核能力与深度生态适配的发行版显得尤为重要。本文聚焦的Ivor

weixin_30298497的博客 335

Marvell 88E6390x交换芯片:从零构建No-CPU模式网络交换系统

本文详细介绍了如何为Marvell 88E6390x以太网交换芯片构建No-CPU模式网络交换系统。通过解析其核心价值与硬件准备,并手把手指导使用CodeBlocks、IMPGUI和SwitchGUI等软件工具进行配置代码编写、镜像生成与烧录,最终实现交换芯片脱离外部CPU独立工作,适用于成本敏感、空间受限的嵌入式网络设备设计。

plant的博客 482

Haiku 4.5:轻量级AI模型的确定性执行范式

小语言模型正从‘能力补全’转向‘系统级确定性交付’,其核心在于以可控成本实现高保真指令遵循与低延迟响应。基于宪法AI框架与INT4量化推理,这类模型通过注意力剪枝、预测性终止和结构化上下文锚定,在编程脚本生成、智能体执行层、IDE内嵌助手等场景中展现出远超传统评估指标的工程价值。尤其在高频、轻量、可编排的AI工作流中,Haiku 4.5以1美元/百万token输入成本和120ms平均延迟,将73%的SWE-bench达标率稳定落地——这标志着AI模型正从单点性能竞赛,迈入单位token效能与任务成功率双优的

weixin_33910759的博客 345

Windows 10/11 注册表 ProfileImagePath 误改修复:3步恢复用户登录与数据安全

本文详细介绍了Windows 10/11系统中因误改注册表ProfileImagePath键值导致用户无法登录的修复方法。通过3个关键步骤,包括定位SID、安全修复注册表项及验证处理,帮助用户恢复登录并保障数据安全。特别强调了操作顺序的重要性以避免数据丢失,适用于各类Windows用户账户登录错误的紧急处理。

chuoshao2508的博客 403

ubuntu24.04+RTX5090D 显卡驱动安装

本文详细介绍了在Ubuntu系统中更新内核、安装NVIDIA驱动的步骤。首先,通过mainline工具安装新版内核,并确保GCC版本兼容。接着,在无桌面环境下配置TTY模式,解决中文显示问题。然后,禁用默认的nouveau驱动,安装NVIDIA驱动,并选择开源驱动以避免黑屏问题。最后,重新启用图形界面,并通过测试软件验证显卡功能。整个过程涵盖了内核更新、驱动安装、TTY配置及图形界面恢复等多个关键步骤,适合需要手动配置NVIDIA驱动的用户参考。

妖米的博客 4671

利用AI编程工具修复与定制Blender到Unity资产导出插件

在3D内容创作与游戏开发工作流中,Blender与Unity之间的资产互导是核心环节,涉及模型、骨骼、动画与材质的兼容性处理。其原理在于通过Python脚本调用Blender API,对资产进行坐标转换、骨骼映射与材质适配,以符合Unity的Y-Up坐标系与人形骨架规范。这一过程的技术价值在于打通两大工具间的数据鸿沟,提升美术资源的生产效率。应用场景广泛覆盖角色动画、场景搭建与实时渲染项目。针对CATS插件在版本迭代中出现的功能滞后问题,本文聚焦于利用AI编程工具(如Codex、GitHub Copilot

weixin_34101229的博客 413

PIMPL 模式 以及Q_DECLARE_PUBLIC 与 Q_DECLARE_PRIVATE

在 C++ 中,PIMPL 模式通常通过将类的私有数据和实现放在一个单独的类中,然后在类的公共接口中使用指向该私有实现类的指针来实现。宏可以帮助在 Qt 的 PIMPL 模式中实现类的私有实现和公共接口的分离,提高代码的封装性和可维护性。宏的结合使用,我们可以实现类的私有性和封装,避免暴露私有实现的细节,同时提高类的可维护性和灵活性。:这一行声明了一个友元类,使得类的公共接口可以访问私有实现类的私有成员。:这一行声明了一个友元类,使得类的私有实现可以访问类的私有成员。是两个宏,用于实现 PIMPL 模式。

追赶时代的博客 841

PostgreSQL JIT(Just-In-Time Compilation)With LLVM 的实现原理

LLVM 的基本介绍 以及 LLVM IR 和 LLVM OrcJIT 如何在PostgreSQL 中应用,提升查询性能。

天行健,地势坤 7007

AI Agent Harness Engineering 开发效率工具:Prompt工程、调试与监控平台

随着AI Agent技术从原型探索走向企业级落地,开发者普遍面临Prompt迭代无版本管控、Agent执行黑盒无法定位错误、上线后无监控导致故障频发、多团队协作效率低下四大核心痛点,据2024年LLMOps行业报告显示,没有配套工具链的Agent开发团队平均迭代周期是有工具链团队的6倍,线上故障率高达23%,平均资源浪费超过60%。

小白菜的博客 424

全志F1C100S/F1C200S学习笔记(11)——spi-flash 启动全流程适配烧录及踩坑指南

SPI Flash 系统编译 spi-flash 启动适配 分区规划: 分区序号 分区大小 分区作用 地址空间及分区名 mtd0 1MB (0x100000) spl+uboot 0x0000000-0x0100000 : “uboot” mtd1 64KB (0x10000) dtb文件 0x0100000-0x0110000 : “dtb” mtd2 4MB (0x400000) linux内核 0x0110000-0x0510000 : “kernel” mtd3 剩余 (

丨晋丨 1万+

简单上手指南:如何使用smartmontools 7.5监控硬盘健康状态

smartmontools是一款强大的开源磁盘健康监控工具,专门用于检测和管理硬盘、固态硬盘等存储设备的健康状况。它包含smartctl(命令行工具)和smartd(守护进程)两大核心组件,支持ATA/SATA、SCSI/SAS和NVMe等多种接口类型,是系统管理员必备的存储设备守护神。 在数据安全至关重要的今天,磁盘故障可能导致灾难性后果。smartmontools能够预防数据丢失、延长设备寿

gitblog_01143的博客 827

【示波器专题】示波器探头的原理深入——有源探头之单端有源探头

由于接地环路的苛刻要求,更高带宽的单端有源探头就算设计了也不实用。因此单端有源探头的带宽一般在6GHz以内,更高带宽的信号测量也只能使用差分有源探头(市面上有些型号的差分探头可同时兼顾单端测试)。......

一点硬件 2144

NXP Layerscape SDK功能矩阵与flex-installer部署实战指南

在嵌入式系统开发中,软件功能支持矩阵是评估平台能力、指导技术选型的关键文档。它通过表格形式清晰定义处理器架构、驱动、加速器及操作系统特性在不同硬件平台上的兼容性,其核心原理在于将复杂的软硬件适配问题标准化,从而降低项目风险、加速开发进程。对于基于NXP Layerscape系列高性能多核处理器的项目,深入理解其SDK附带的功能支持矩阵(Feature Support Matrix)具有极高的技术价值,它能帮助开发者快速判断诸如TSN(时间敏感网络)、DPDK(数据平面开发套件)、硬件虚拟化直通等关键特性在L

chiyingliao3565的博客 433

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

认知能力差距分类框架:让智能体工程从玄学走向可诊断

智能体应用开发中,模型在真实业务场景下的失败往往被笼统归因为“能力不足”或“提示词不行”,但本质是任务所需的认知能力与模型实际具备的认知能力之间存在落差,即认知能力差距(Cognitive Capability Gap)。理解这一概念,需要从生成式AI与智能体AI的差异说起:前者是单项认知任务,后者则是感知、规划、记忆、调用、评估的多阶段组合,任何一环的差距都会导致整体任务失败。工程上,将差距分类为知识覆盖、推理深度、上下文保持、工具使用、规划执行和自我评估六个维度,就能像排查性能问题一样定位智能体故障。借

weixin_33898876的博客 439

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Mythos大模型:代码安全分析与自动化攻防的范式跃迁

大模型在代码安全领域的应用正从辅助工具迈向核心生产力。其底层原理在于将源码、汇编、系统调用等多模态信息统一建模为因果推理图谱,实现跨栈漏洞推演与攻击链生成。这种能力突破了传统静态分析与模糊测试的边界,具备真实生产环境中的可部署性与高置信度验证价值。典型应用场景包括老旧系统漏洞挖掘、开源项目PR自动化审计、企业级红蓝对抗模拟等。Mythos作为代表,以‘编译器感知预训练’和‘攻击者视角知识组织’为技术支点,在SWE-bench Pro与CyberGym等严苛基准中显著超越前代模型,标志着AI驱动的安全研究正式

weixin_30443747的博客 509

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

上一篇: 故障分析 | MySQL convert 函数导致的字符集报错处理
下一篇: 技术分享 | 浅谈一下大页
爱可生开源社区
博客等级 码龄8年 1936粉丝 1004原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值