如何限制用户修改long_query_time

Elasticsearch Update与Update by Query核心原理、场景选型与性能优化指南 在分布式搜索与数据分析领域,数据更新是确保信息实时性与一致性的关键操作。其核心原理通常涉及文档的版本控制、索引段合并与分片同步机制,以实现高效、准确的修改。从技术价值看,合理的更新策略能显著提升系统吞吐量,保障数据质量,并降低运维复杂度。在应用场景上,无论是电商订单状态实时变更、用户画像动态维护,还是日志数据的批量清洗与标准化,都离不开对更新操作的精准把控。本文聚焦于Elasticsearch中的两种核心更新方式:针对单文档精准操作的Update API与基于查询条件批量处理的Update by Query 阅读详情

如何限制用户修改long_query_time

需求来源

数据库的 long_query_time 设置了写入慢查询日志的SQL语句执行时长的阈值,当应用系统修改为很小的值或0时,会在数据库的慢查询日志中记录大量SQL语句,导致数据库性能降低和占用磁盘空间的快速增长。

GreatSQL 对于影响整个数据库会话级变量设置为受限会话变量(如:binlog_format,sql_log_bin和sql_log_off),同时增加了用户权限 SESSION_VARIABLES_ADMIN,只有授予了 SESSION_VARIABLES_ADMIN 的用户才能更改这些受限会话变量。

但 long_query_time 不在受限会话变量中,该如何限制应用程序修改 long_query_time 呢?

解决方法

在 performance_schema 中有表 variables_by_thread 存储了每个活动会话的会话级系统变量。可以编写一个event定时检查用户的long_query_time设置,如果与全局的long_query_time变量值不同,将该会话kill掉。

相关系统表:

#performance_schema下的系统表
#存储每个会话的会话级系统变量
greatsql> SHOW CREATE TABLE variables_by_thread\G
*************************** 1. row ***************************
       Table: variables_by_thread
Create Table: CREATE TABLE `variables_by_thread` (
  `THREAD_ID` bigint unsigned NOT NULL,
  `VARIABLE_NAME` varchar(64) NOT NULL,
  `VARIABLE_VALUE` varchar(1024) DEFAULT NULL,
  PRIMARY KEY (`THREAD_ID`,`VARIABLE_NAME`)
) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)

#存储全局的系统变量
greatsql> SHOW CREATE TABLE global_variables\G
*************************** 1. row ***************************
       Table: global_variables
Create Table: CREATE TABLE `global_variables` (
  `VARIABLE_NAME` varchar(64) NOT NULL,
  `VARIABLE_VALUE` varchar(1024) DEFAULT NULL,
  PRIMARY KEY (`VARIABLE_NAME`)
) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)

event程序的实现:

DELIMITER $$
CREATE EVENT check_session_long_query_time
ON SCHEDULE EVERY 5 SECOND
DO
BEGIN
    DECLARE v_processlist_id BIGINT UNSIGNED;
    DECLARE done INT DEFAULT FALSE;
    DECLARE cur CURSOR FOR
        SELECT t.PROCESSLIST_ID
        FROM performance_schema.variables_by_thread v
        inner join performance_schema.threads t on v.thread_id=t.thread_id
        WHERE v.VARIABLE_NAME = 'long_query_time' 
        AND v.VARIABLE_VALUE != (select VARIABLE_VALUE from performance_schema.global_variables where 
        VARIABLE_NAME = 'long_query_time' ) ;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
    OPEN cur;
    read_loop: LOOP
        FETCH cur INTO v_processlist_id ;
        IF done THEN
            LEAVE read_loop;
        END IF;
        -- 终止连接
        KILL v_processlist_id ;
    END LOOP;
    CLOSE cur;
END$$
DELIMITER ;

总结

通过kill会话来限制用户修改会话级变量,有些暴力,但也是DBA的无奈手段。较好的方式是修改受限系统变量实现方法,将受限的会话变量做成一个可动态添加的列表,如在某个系统表中予以存储,DBA可以通过添加和删除数据行来动态修改受限会话变量。MySQL开源版本也存在同样的问题,MySQL 社区已确认作者提的feature request《Optimize the handling of SESSION_VARIABLES_ADMIN permission(https://bugs.mysql.com/bug.php?id=115944)》。

Enjoy GreatSQL :)

关于 GreatSQL

GreatSQL是适用于金融级应用的国内自主开源数据库,具备高性能、高可靠、高易用性、高安全等多个核心特性,可以作为MySQL或Percona Server的可选替换,用于线上生产环境,且完全免费并兼容MySQL或Percona Server。

相关链接: GreatSQL社区 Gitee GitHub Bilibili

GreatSQL社区:

image

社区有奖建议反馈: https://greatsql.cn/thread-54-1-1.html

社区博客有奖征稿详情: https://greatsql.cn/thread-100-1-1.html

(对文章有疑问或者有独到见解都可以去社区官网提出或分享哦~)

技术交流群:

微信&QQ群:

QQ群:533341697

微信群:添加GreatSQL社区助手(微信号:wanlidbc )好友,待社区助手拉您进群。

HTTP QUERY方法详解:复杂查询的标准化解决方案与Spring Boot实践 在RESTful API设计与Web服务开发中,HTTP协议方法是实现资源操作的核心基础。GET方法因其安全、幂等和可缓存的特性,被广泛用于资源获取。然而,其查询能力受限于URL长度和扁平化的参数结构,难以表达复杂的结构化查询条件,例如包含多字段过滤、逻辑运算符和嵌套排序的场景。为了解决这一问题,IETF在RFC 9230中正式定义了HTTP QUERY方法,它允许在请求体中携带结构化的查询描述,从而在保持GET方法安全性与幂等性的同时,极大地提升了复杂查询的表达能力。这一特性对于构建高效、语义清晰的搜索A 阅读详情

相关推荐

Pandas query()方法:用自然语言筛选数据的原理与实战

Pandas的query()是一种声明式数据筛选机制,其核心是将字符串表达式交由numexpr引擎惰性解析执行,避免中间布尔数组、降低内存开销,并天然规避运算符优先级错误。相比传统布尔索引,它以更接近SQL和自然语言的语法(如'age > 30 and city == "Beijing"')显著提升可读性与协作效率,尤其适用于探索性数据分析(EDA)、动态条件过滤及规则驱动型场景。技术价值体现在三方面:一是通过符号解析实现列名裸写(无需df[\"col\"]),二是支持@变量引用实现参数化查询,三是内置is

weixin_34146805的博客 387

mysql 慢查询日志的操作

MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10S以上的语句。默认情况下,Mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。慢查询日志支持将日志记录写入文件,也支持将日志记录写入数据库表。 慢查询相关

rainrun的博客 981

现代RAG工程实践:从Query重写到LLM锚定的落地路线图

RAG(检索增强生成)是一种将信息检索与大语言模型结合的关键技术,其核心原理在于通过外部知识源约束LLM输出,提升事实准确性与领域适配性。技术价值体现在显著降低幻觉率、支持专业术语理解、实现可验证的答案生成。典型应用场景包括企业知识库问答、金融研报分析、法律条文检索和工业维修手册查询等对可信度要求极高的领域。然而,基础RAG常因语义鸿沟、粗粒度分块和缺乏结果校验而失效。本文聚焦HyDE与LLM Grounding两大关键能力,结合Query Rewriting、Reranker精排与语义Chunking等工

weixin_30314813的博客 404

MyEclipse 下载、安装教程

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!因此收集整理了一份《Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

m0_67402970的博客 1万+

如何限制用户修改 `long_query_time` 配置?实践与案例分析

大家好!在数据库管理中,long_query_time这个配置项通常会被用来监控那些执行时间较长的查询。通过设置,我们可以精准地跟踪数据库中可能影响性能的慢查询,进而进行优化和调整。很多数据库管理员都会根据实际需求来修改这个参数,从而提高系统的监控和调优效率。但是,在某些情况下,我们并不希望普通用户随意修改,因为这可能会导致监控失效或者降低性能优化的效果。那么,如何才能有效地限制用户修改这个重要配置呢?在本文中,我将结合具体的场景与实践案例,为大家详细讲解如何限制普通用户修改配置。

喵手的博客 769

摄像头visio_最全面弱电智能VISIO图标集(百个),高大上方案就靠这个了

原标题:最全面弱电智能VISIO图标集(百个),高大上方案就靠这个了不会用Visio,Visio画拓扑画的很丑,怎么办?本期sin66小编免费分享一份最全面的弱电智能VISIO图标集(百个)给大家,以后画拓扑、做方案,直接高大上起来!需要本期资料直接看文末!!接下来我们一起看一下这些Visio图标大全:我们从下图可以看出前端设备主要是由枪机,筒机,无线摄像头,半球,球机,USB摄像头等构成,对于绘...

weixin_39644915的博客 1万+

mysql query_time单位_深入mysql慢查询设置的详解

在web开发中,我们经常会写出一些SQL语句,一条糟糕的SQL语句可能让你的整个程序都非常慢,超过10秒一般用户就会选择关闭网页,如何优化 SQL语句将那些运行时间 比较长的SQL语句找出呢?(4)如果日志文件不想放在data目录,我们可以通过如下配置指定存放的目录及日志文件名:slow_query_log_file=file_name其中file_name就是你的存放日志的目录和文件名,在这里注意有的资料上可能是log-slow-queries=file_name,这个在mysql5.5版已经过时!

大鹏 5284

Spring Boot 微服务 API 网关实战:Spring Cloud Gateway 整合,搞定路由转发 + 统一认证 + 限流熔断(企业级落地)

摘要:本文详细介绍了SpringCloud Gateway在微服务架构中的核心作用与实现方案。作为API网关,它解决了服务入口分散、认证冗余、流量失控等痛点,提供路由转发、统一认证、限流熔断等能力。文章通过图书管理系统案例,演示了SpringBoot整合Gateway的全流程,包括基础路由配置、JWT全局认证、局部参数校验、Sentinel限流熔断以及Nacos动态路由等核心功能实现。特别强调了企业级落地中的关键注意事项,如路由顺序、过滤器执行顺序、HTTPS配置等。该方案能有效构建统一、安全、高效的微服务

lamehsl的专栏 1381

慢查询优化

有时慢查询正在执行,已经导致数据库负载偏高了,而由于慢查询还没执行完,因此慢查询日志还看不到任何语句。并留意慢查询日志的输出,上线前的功能测试完成后,分析慢查询日志每类语句的输出,重点关注 Rows_examined(语句执行期间从存储引擎读取的行数),提前优化。分析 SQL 执行效率是优化 SQL 的重要手段,通过上面讲的两种方法,定位到慢查询语句后,我们就要开始分析 SQL 执行效率了,子曾经曰过:“工欲善其事,必先利其器”,我们可以通过 explain诊断工具来分析慢查询。

Bonnenults浅时光的博客 923

Windows10下部署Heygem进行数字人生成

对于使用Heygem生成数字人,需要注意几个问题: + 需要使用Nvidia的显卡。 + 需要在Windows上进行本地部署。主要原因为客户端是Windows的,客户端对上传的视频写入硬编码的`D:\heygem_data\voice\data`目录,需要在容器上读取这些文件。 + 需要在Windows上部署Docker,将Windows的目录映射到容器中,由容器中的服务进行读取。 + 需要特别注意,一定要有D盘,这个D盘是Windows的D盘,不能是插入的USB设备后产生的D盘。 + 需要下载3个Doc

冀辉的博客 5619

《矩阵论》学习笔记(四):4.2 矩阵的QR分解

《矩阵论》学习笔记(四):4.2 矩阵的QR分解 文章目录《矩阵论》学习笔记(四):4.2 矩阵的QR分解一. Givens矩阵与Givens变换1.1. 概念与理解1.2. Givens矩阵求解方法二. Householder矩阵与Householder变换2.1. 概念与理解2.2. Householder矩阵求解方法2.3. Givens变换与Householder变换的关系三. 矩阵的QR...

shine的博客 3680

设置 SET GLOBAL long_query_time = 0.3; 后没有生效

设置 SET GLOBAL long_query_time = 0.3; 后没有生效

李长渊的博客 1341

ADS仿真设计平行定向耦合器学习笔记

ADS仿真设计平行定向耦合器

qq_36521926的博客 1万+

mysql慢查询日志默认在哪里_MySQL 慢查询日志

慢查询日志概念MySQL 的慢查询日志是 MySQL 提供的一种日志记录,它用来记录在 MySQL 中查询响应时间超过阈值的语句,具体指响应时间超过long_query_time 值的 SQL,会被记录到慢查询日志。long_query_time 的默认值是 10s,意思是查询响应时间超过 10s 的 SQL语句。默认情况下,MySQL 是不开启慢查询日志的,需要我们手动设置这个参数值,当然,如果...

weixin_42499692的博客 4428

王炸联动!OpenClaw 对接微信 / 企业微信保姆级教程,AI 办公效率翻倍

《OpenClaw对接微信/企业微信全指南》摘要:本文提供开源AI智能体OpenClaw与微信生态的完整对接教程。核心内容包括企业微信配置四步法(获取凭证、修改配置、重启服务、验证对接)和个人微信通过企业微信插件的一键打通方案。对接后支持微信/企微发指令AI秒执行、群聊机器人、文件同步等高效办公场景,并附常见问题排查代码。教程强调配置简单(全程可复制代码)、适用广泛(个人/团队场景),实现沟通与AI协作的无缝衔接。文末包含端口放行等实用命令,助力用户快速实现移动端AI办公。(149字)

2501_93651177的博客 584

利用pytorch长短期记忆网络LSTM实现股票预测分析

长短时记忆网络(Long Short Term Memory Network, LSTM),是一种改进之后的循环神经网络,可以解决RNN无法处理长距离的依赖的问题,目前比较流行。LSTM主要就是加入了三个门控:第一个开关遗忘门:负责控制继续保存长期状态c;第二个开关输入门:负责控制把即时状态输入到长期状态c;第三个开关输出门:负责控制是否把长期状态c作为当前的LSTM的输出。

优快云 精品推荐 1万+

DBT模型打Snowflake Query Tag实现可观测性

Query Tag 是 Snowflake 提供的查询元数据标记机制,用于在执行时为 SQL 语句附加结构化上下文信息;其底层原理是通过会话级 `ALTER SESSION SET QUERY_TAG` 或 DDL 注释方式注入,由 Snowflake 自动关联至 QUERY_HISTORY 视图;该机制显著提升数据平台可观测性,支撑性能根因分析、资源归因与SLA追踪;典型应用场景包括 DBT 模型链路追踪、多环境隔离审计、CI/CD 流水线溯源及 SRE 主动告警;本文聚焦 DBT + Snowflake

weixin_30252709的博客 372

【RT-DETR涨点改进】全网独家首发、特征融合改进篇 | AAAI 2026 | 引入CDEM交叉动态增强模块,双向引导和融合,在低光图像增强中有效提升了图像的亮度,提升小目标和暗目标的检测准确率

本文提出了一种基于CDEM(交叉动态增强模块)改进的rtdetr网络模型,有效提升了在低光和复杂环境下的目标检测性能。CDEM模块通过动态增强亮度与色彩特征,改善图像输入质量,增强细节和对比度。该模块具有轻量级结构,易于集成到现有模型中,能够显著提升小目标和暗目标的检测准确率与鲁棒性。文章详细介绍了CDEM模块的结构原理、实现方法,并提供了完整的代码实现和配置指南,包括三种改进版本的YAML配置文件。实验结果表明,该方法在图像增强和目标检测任务中均取得了优异性能。

Ai缝合怪、助力小伙伴高效发论文 144

MySQL慢查询日志全解析:从配置到实战优化数据库性能

在数据库性能优化领域,慢查询日志是定位SQL执行瓶颈的核心工具。其原理在于记录执行时间超过预设阈值的查询语句,为性能分析提供原始数据。这项技术的核心价值在于能够精准定位导致数据库响应缓慢的根本原因,避免在应用层、网络层等方向盲目排查。通过分析慢查询日志,可以识别出缺失索引、低效联表、全表扫描等常见问题,进而指导索引优化、SQL重写及架构调整。在实际应用场景中,无论是日常性能监控、线上故障排查,还是新系统上线前的压力测试,慢查询日志都能提供关键洞察。本文以一次真实的线上事故为引,详细解读了如何配置、分析慢查询

weixin_33911824的博客 481

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

MySQL慢查询日志详解

本次代码执行环境的mysql版本是 :5.6.37-log 1.慢查询日志概念(也叫慢日志):在 MySQL 中执行时间超过指定时间的 SQL 语句 2.常见的几个相关的变量 (可以直接去mysql下的配置文件my.cnf文件中去改,我下面是直接在SQLyog中进行操作) 默认情况下慢查询日志是关闭的,这里我开起来了 ①slow_query_log ②slow_query_log_file 用下面的代码可以查一下慢查询日志是否开启以及慢日志的位置 SHOW VARIABLES LIKE '%slow_que

qq_39687662的博客 1000

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

数据库监控与调优【三】—— 慢查询日志与分析

本文基于MySQL 8.0,理论支持MySQL 5.0及更高版本。

qq_46601365的博客 569

jre9下载 jdk9

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

MySQL 慢查询日志 核心参数详解

结合实战判断瓶颈,附解读和使用场景。

weixin_42148384的博客 333

第39章:Redis 8.x 新能力实战:JSON、Query、Vector 与语义缓存

本文探讨了基于Redis构建智能客服语义缓存系统的技术方案,通过四个关键实验验证Redis在JSON文档存储、Query Engine索引、向量检索和语义缓存集成方面的能力。文章揭示了RedisJSON通过树状结构实现原子性局部更新的优势,分析了Query Engine不同索引类型的特点和适用边界,比较了FLAT和HNSW两种向量检索策略的性能差异。最终提出一个端到端的RAG语义缓存Pipeline,并强调工程实践中需要在延迟、内存成本、准确性之间进行权衡。

davidwang456的专栏 617

Easy-Query动态表名与动态数据源配置指南:轻松应对复杂业务场景

Easy-Query是一款高性能、轻量级的Java/Kotlin ORM框架,专为处理复杂数据库查询场景而设计。🎯 在当今的数据驱动应用中,动态表名和动态数据源配置已成为处理多租户、分库分表、数据归档等复杂业务场景的必备功能。本文将详细介绍如何在Easy-Query中高效配置和使用这些功能,帮助您轻松应对各种复杂的数据访问需求。 ## 为什么需要动态表名与动态数据源?🤔 在实际的企业级应用

gitblog_00729的博客 674

MySQL数据库调优————慢查询日志的开启与分析

慢查询日志开启与分析

weixin_38910645的博客 466

2021-03-26

MySQL数据库慢查询配置 参数说明: slow_query_log 慢查询开启状态 slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录) long_query_time 查询超过多少秒才记录慢查询日志 1.查询慢查询配置信息 show variables like 'slow_query%'; 2.查询慢查询限制时间 show variables like 'long_query_time'; 3.将 s

木子雨田 113
上一篇: MariaDB 和 GreatSQL 性能差异背后的真相
下一篇: MySQL 8.0 执行COUNT()很慢原因分析
GreatSQL社区
博客等级 码龄5年 1210粉丝 390原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值