mysql 设置 global long_query_time 不生效问题

本文解答了关于数据库中全局查询时间设置(setgloballong_query_time)的问题,指出直接修改设置可能不会立即生效,并提供了正确的操作步骤:修改设置后,需先关闭数据库连接再重新连接,以确保更改生效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

set global long_query_time=1;为啥无效呢,再查还是原来的10

修改之后,先关闭数据库连接,再重新连接,再次查询就可以看到实际上是修改了的。

MySQL参数调优策略详解 4.1 内存和缓存配置 在 MySQL 中,内存和缓存的优化对于提升数据库性能至关重要。以下是关键参数的优化策略: 1. 缓冲池(Buffer Pool) • InnoDB Buffer Pool (适用于 InnoDB 存储引擎): SET GLOBAL innodb_buffer_pool_size = 8589934592; 推荐值:占用 服务器物理内存的 50%-75%,但需根据业务负载进行调整。 作用:缓存数据页、索引、插入缓冲等,提高读写性能。 相关参数 : 3. 临时表优化 • SET GLOBAL tmp_table_size = 268435456 • 作用:减少磁盘临时表的使用,提高查询性能。 4. 连接缓存 SET GLOBAL table_open_cache = 4000; SET GLOBAL table_definition_cache = 2000; • 作用:减少表打开和关闭的开销,提高查询性能。 4.2 并发优化处理 高并发场景下,需要优化 MySQL 的线程管理、事务处理和锁机制。 1. 线程优化 SET GLOBAL thread_cache_size = 64; • 作用:减少频繁创建和销毁线程的开销,提高并发处理能力。 2. 连接管理 SET GLOBAL max_connections = 500; SET GLOBAL wait_timeout = 600; • max_connections 设定最大连接数,过高可能会占用过多资源,可结合 SHOW STATUS LIKE 'Threads_connected'; 监控实际连接数。 • wait_timeout 设定连接的超时时间,避免空闲连接占用资源。 3. 事务并发控制 SET GLOBAL innodb_flush_log_at_trx_commit = 2; SET GLOBAL sync_binlog = 0; • innodb_flush_log_at_trx_commit=2 允许日志每秒写入一次磁盘,提高性能,但可能导致崩溃时数据丢失。 • sync_binlog=0 关闭 binlog 立即同步,提高事务处理速度。 4. 锁优化 SET GLOBAL innodb_lock_wait_timeout = 50; • 避免长时间锁等待影响业务。 4.3 日志与持久化 日志优化可以提高 MySQL 的数据安全性和恢复速度,同时影响写入性能。 1. Redo Log(重做日志) • 作用:加速事务恢复,提高写性能。 2. Binary Log(二进制日志) SET GLOBAL binlog_format = 'ROW'; • binlog_format=ROW 适用于主从复制,提高数据一致性。 3. General Log(一般查询日志) SET GLOBAL general_log = OFF; • 避免影响性能,只有在调试时开启。 4. Slow Query Log(慢查询日志) SET GLOBAL slow_query_log = ON; SET GLOBAL long_query_time = 1; • long_query_time=1 记录执行时间超过 1 秒的 SQL 语句,帮助优化慢查询。 介绍一下
03-26
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值