关于long_query_time的设置,可不可以说是mysql的一个小小bug呢

我们知道对对于MySQL的日志功能,我们可以完全自己控制到底写还是不写。一般来说,binlog我们一般会开启,而对于慢查询我们一般会在开发的时候调试和观察SQL语句的执行速度。但今天发现一个问题。在使用show variables like ‘log%‘;查看slow日志是否开启时,发现为OFF,使用set global log_low_queries=on;成功了。而使用show variales like ‘long%‘时发现是10,于是想把它修改成1,照葫芦画瓢使用set global long_query_time=1,再一次查询发现还是10。乖乖砸了,使用select sleep(10),记录了日志,而是用select sleep(1)确实没有被记录。而且设置的返回记录是:

mysql> set global long_query_time=1;

Query OK, 0 rows affected (0.00 sec)

难道真的没有改变吗,忽然想到是不是需要重启服务器呢,想应该不是吧,我又不是修改配置文件。最后想重新开一个会话看如何。重新开一个会话查询show variables like ‘long%‘;果然被修改了。那为什么在修改它的窗口没有反映出来呢。不解。

希望遇到这种情况的朋友不要向我一样在一个会话中不停的试。找原因,直接开过窗口就可以试验了。

另外,将MySQL慢查询日志写入表的的设置为。set global log_output=‘TABLE‘;

和慢查询相关的还有一个参数是log_queries_not_using_indexes;用来设置是否记录没有使用索引的查询。开启该查询后,如果你的日志是记录到表中的,那么你每次显示慢日志语句的时候,从该表中的查询记录也会被添加进行。

如果日志是写在文件中。用mysqldumpslow工具可以对慢查询日志文件进行浏览。该工具我也没使用过,用了后在介绍了。

转自:http://blog.csdn.net/fengbangyue/article/details/6359509

原文地址:https://www.cnblogs.com/zhuleixiao/p/9364489.html

时间: 2024-10-02 21:21:31

关于long_query_time的设置,可不可以说是mysql的一个小小bug呢的相关文章

Slowlog中long_query_time时间设置以下的query

Mysql Version :5.1.72 OS Version :CentOS release 6.4 (Final) 说到慢查询,有点老生常谈了,但是慢查询相关的有个参数可能会被很多人忽略. log_queries_not_using_indexes 这个参数设置当查询没有使用索引的情况下,是否记录到slowlog中. 模拟情景: 当前long_query_time = 1 && log_queries_not_using_indexes = on 运行一个全表扫描的sql: 当执行当

xampp默认mysql密码设置,修改mysql的默认空密码

xampp默认mysql密码设置,修改mysql的默认空密码 分类: xampp2012-09-12 11:24 30264人阅读 评论(5) 收藏 举报 mysqlphpmyadminauthentication数据库管理工具数据库extension 以前开发我一直都是用的appserv,appserv的特点就是一键安装,安装的时候会要求用户输入mysql的root密码.今天我改用xampp作为我的开发环境,所以碰到了修改mysql默认空密码的问题. 我看了下网上所提供的一些帮助信息,搞的那么

设置Linux下Mysql表名不区分大小写

1.Linux下mysql安装完后是默认:区分表名的大小写,不区分列名的大小写:2.用root帐号登录后,在/etc/my.cnf中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务,这时已设置成功:不区分表名的大小写:lower_case_table_names参数详解:lower_case_table_names=0其中0:区分大小写,1:不区分大小写 MySQL在Linux下数据库名.表名.列名.别名大小写规则是这样的:1.数据库名与表名是严格

基于Servlet、JSP、JDBC、MySQL的一个简单的用户注册模块(附完整源码)

最近看老罗视频,做了一个简单的用户注册系统.用户通过网页(JSP)输入用户名.真名和密码,Servlet接收后通过JDBC将信息保存到MySQL中.虽然是个简单的不能再简单的东西,但麻雀虽小,五脏俱全,在此做一归纳和整理.下面先上源码: 一.index.jsp <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path =

vue+nodejs+express+mysql 建立一个在线网盘程序

vue+nodejs+express+mysql 建立一个在线网盘程序 目录 vue+nodejs+express+mysql 建立一个在线网盘程序 第一章 开发环境准备 1.1 开发所用工具简介 1.2 安装 MySQL 1.2.1 下载安装 MySQL 1.2.2 可能出现的问题和解决方案 1.3 安装 vue-cli 1.4 安装 express 第二章 数据库设计和创建 2.1 数据库和表设计 2.2 user 表 2.3 file 表 2.4 创建数据库和表所用 sql 语句参考 第三

设置警告框为带有一个密文输入框的样式,并设置输入框键盘为数字键盘;判断密文输入框里的内容,并弹出相应提示

项目需求 废话不说,直接上试题 及答案 代码 #import "TableViewController.h" @interface TableViewController ()<UIAlertViewDelegate> @property (nonatomic, strong) NSMutableArray * dataSource; - (IBAction)buy:(id)sender; @end @implementation TableViewController -

MySQL数据库罕见的BUG——Can&#39;t get hostname for your address

在连接mysql jdbc时候,抛出了 com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Communication link failure,  message from server: "Can't get hostname for your address" 的错误,无论是使用jdbc:mysql://127.0.0.1:3306还是jdbc:mysql://localhost:3306都出

***mysql 用一个表的一列,去更新另一表的一列

需求: 老板给了一个EXCEL数据,是本人提供的一个模板,含ID,现在相当于要导入这新增的一列数据到数据库中的某一个表. 方法一:用navicat,在excel中复制一列,再粘贴到navicat中的一列中去 方法二:用sql的方法:先建一个临时表,将数据导入,里面有ID和desc两列,再执行下面的语句 UPDATE gy_doctor a, gy_tmp b SET a.dr_desc = b.`desc` WHERE a.dr_id = b.id; 设有表t1: id name1 null2 

mysql添加一个字段(

mysql添加一个字段(在指定的一个字段后面) 举个栗子:alter table inquiry add error_code varchar(3) after add_time; 说明:alter table + 表名 + add + 要添加的字段 字段类型 +  after  + 要跟随的字段名 alter table t_adviser_info add hold int COMMENT '0持有,1未持有' after stockname alter table t_adviser_in