mysql中最影响速度的就是那些查询很慢的语句。这些慢的语句,可能是写的不够合理或者是大数据下多表的联合查询等等。所以我们要找出这些语句,分析原因,加以优化。

1、方法1:用命令开启慢查询

1)、查看默认慢查询的时间:

mysql> show variables like "%long%";
+--------------------+-----------+
| Variable_name | Value |
+--------------------+-----------+
| long_query_time | 10.000000 |
| max_long_data_size | 1048576 |
+--------------------+-----------+
2 rows in set (0.24 sec)

2)、改动慢查询时间,建议设置为5秒以内,不要设置过大,不然就失去了慢查询的作用了。

mysql> set global long_query_time=2;
Query OK, 0 rows affected (0.25 sec)

这里设置慢查询时间为2秒。

3)、查看慢查询是否开启

mysql> show variables like "%slow%";
+---------------------+-----------------------------------------+
| Variable_name | Value |
+---------------------+-----------------------------------------+
| log_slow_queries | OFF |
| slow_launch_time | 2 |
| slow_query_log | OFF |
| slow_query_log_file | /usr/local/mysql/var/li411-195-slow.log |
+---------------------+-----------------------------------------+
4 rows in set (0.23 sec)

我们能够看到慢查询未开启。

4)、开启慢查询

mysql> set slow_query_log='ON';
ERROR 1229 (HY000): Variable 'slow_query_log' is a GLOBAL variable and should be
set with SET GLOBAL

报错了。这里须要注意一下的是设置时须要加上 global keyword。

mysql> set global slow_query_log='ON';
Query OK, 0 rows affected (1.11 sec)

再次查看是否开启:

mysql> show variables like "%slow%";
+---------------------+-----------------------------------------+
| Variable_name | Value |
+---------------------+-----------------------------------------+
| log_slow_queries | ON |
| slow_launch_time | 2 |
| slow_query_log | ON |
| slow_query_log_file | /usr/local/mysql/var/li411-195-slow.log |
+---------------------+-----------------------------------------+
4 rows in set (4.04 sec)

我们能够看到mysql 慢查询已经生效了。

2、方法2:改动mysql配置文件my.cnf

在[mysqld]段中增加:

long_query_time = 2
log-slow-queries = /usr/local/mysql/var/localhost-slow.log

重新启动mysql服务就可以。



这里注意一下:自己在 lnmp 环境下通过 /etc/init.d/mysql reload 命令重载mysql服务没有成功开启慢查询,使用 /etc/init.d/mysql restart 命令成功开启了慢查询。

linux下mysql开启慢查询的更多相关文章

  1. linux下mysql开启远程访问权限 防火墙开放3306端口

    linux下mysql开启远程访问权限 防火墙开放3306端口 转载  2017-01-21   作者:JAVA-ANDROID 这篇文章主要为大家详细介绍了linux下mysql开启远程访问权限,防 ...

  2. linux下mysql开启二进制日志

    mysql的查询日志,慢查询日志,错误日志,网上的设置方法是正确的.但在二进制日志上设置有问题.正确的设置方法如下, 在/etc/my.cnf文件中[mysqld]下加上: server-id = 1 ...

  3. linux 下mysql 开启远程连接

    系统通过netstat -ntlp  来查看正在运行服务所使用的端口 ,查看3306端口是否开启. 防火墙iptables 如果是新装的 系统, 一般不用管这个因素,不过我们也先 用service i ...

  4. linux下mysql开启远程访问权限及防火墙开放3306端口

    默认mysql的用户是没有远程访问的权限的,因此当程序跟数据库不在同一台服务器上时,我们需要开启mysql的远程访问权限. 主流的有两种方法,改表法和授权法. 相对而言,改表法比较容易一点,个人也是比 ...

  5. linux下mysql开启关和重启

    开启: /etc/init.d/mysql start关闭: /etc/init.d/mysql stop重启: /etc/init.d/mysql restart 查看字符集show variabl ...

  6. linux下mysql开启远程访问权限及防火墙开放3306端口(mysql开放host访问权限)

    开启mysql的远程访问权限默认mysql的用户是没有远程访问的权限的,因此当程序跟数据库不在同一台服务器上时,我们需要开启mysql的远程访问权限.主流的有两种方法,改表法和授权法.相对而言,改表法 ...

  7. linux下mysql开启可访问

    修改mysql配置连接信息 将bind-address注释 vim /etc/my.cnf 修改mysql用户授权 mysql>GRANT ALL PRIVILEGES ON *.* TO ' ...

  8. linux下mysql的安装

    一.下载 http://dev.mysql.com/downloads/mysql/ 选择对应的版本,这里选择“Linux-Generic” 以64位系统为例,这里需要下载如下两个文件: MySQL- ...

  9. linux 下 mysql 常用命令

    linux 下 mysql 常用命令   阅读目录 ====================== 1.开启和关闭 1.1.开启 1.2.关闭 1.3.重启 2.登录 2.1.密码明文 2.2.密码密文 ...

随机推荐

  1. XX.frame.origin.x 赋值问题

    can't use that myView.frame.origin.x=25.0; 因为.操作 和 = 一起用的话会调用 set方法.所以上式是行不通的. 可以用下面的方式来实现. that I h ...

  2. HP Web Tours分析

    1.启动Web Tours 2.首页结构 3.预定机票

  3. Solaris系统管理(一)

    最近需要将一个项目从Linux平台迁移到Solaris,对Solaris进行了一点研究,总结如下. 一句话介绍: Solaris 是Sun Microsystems研发的计算机操作系统.它被认为是UN ...

  4. 判断是否为BST

    递归的方法,用返回false的方法.中序遍历的想法很好,空间浪费.遍历的过程记录上一次的值进行比较. //题目描述 // //请实现一个函数,检查一棵二叉树是否为二叉查找树. //给定树的根结点指针T ...

  5. Mapreduce读取Hbase表,写数据到一个Hbase表中

    public class LabelJob { public static void main(String[] args) throws Exception { Job job = Job.getI ...

  6. javascript 作用域例子

    for(var i=0,l=url1.length;i<l;i++){ var url = url1[i]; setTimeout(function(){ window.open(url); } ...

  7. 算法导论-动态规划(最长公共子序列问题LCS)-C++实现

    首先定义一个给定序列的子序列,就是将给定序列中零个或多个元素去掉之后得到的结果,其形式化定义如下:给定一个序列X = <x1,x2 ,..., xm>,另一个序列Z =<z1,z2  ...

  8. pku1273 Drainage Ditches

    http://poj.org/problem?id=1273 网络流,Dinic #include <stdio.h> #include <string.h> #include ...

  9. Rxjava, RxAndroid, Retrofit 等库的使用

    RxJava的基本用法: 关于 unSubscribe() 的调用问题: There is no need to unsubscribe in onCompleted. Take a look at  ...

  10. 前端复习-03-接上面ajax跨域问题的解决与探索

    废话不多少 ..我估计一万个人都搞不清楚 什么是跨域 然后就被这堵墙无情的挡住了..我尝试了很多办法解决这个问题.后来再慕课网上的一个老师的ppt那里看到一张图 我觉得 能记住这张图的话 应该就算是深 ...