• 【Mysql优化三章】第一章


    版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/Bv5f4b8Peex/article/details/78130845

    如今网上的好多mysql优化写的都非常宽泛。没什么实际的价值。今天我们从目的,思路,工具几个方面着重讲一下。

    目的:

    我们mysql优化的目的是什么呢?

    避免数据库连接超时出现5xx错误。

    避免慢查询造成页面无法载入。

    避免堵塞造成数据无法提交。


    我们一般就是从sql和索引,数据库表结构。系统设置,硬件。四个方面来进行优化,而sql和索引以及数据库表结构占领了我们sql优化的大部分内容,是我们优化的基础。


    接下来我们就開始搞一波事。


    我们连接我们的mysqlserver。然后我们输入命令:

    show variables like ‘slow_query_log’;

    目的是为了查看我们的慢查询日志是否打开;


    640?wx_fmt=png&wxfrom=5&wx_lazy=1

    ok ,非常明显我们的慢查询日志没有打开,那么我们先看一下没有使用索引的sql有没有被日志记录。


    show variables like '%log%',然后我们能够看到

    640?wx_fmt=png&wxfrom=5&wx_lazy=1

    我这边是已经开启了的。假设你那里没有开启的话,我们仅仅须要输入命令

    set global log_query_not_using_indexes = on;

    这一条命令开启就能够了,然后我们指定一下我们的慢查询日志记录的时间。

    0?wx_fmt=png

    假设你的mysql 没有设置过的话,这一项的值应该为0,意思就是每次查询都会被记录,可是在生产环境中,假设设置为0的话,那么会在一段时间内产生大量的慢查询日志,占用硬盘空间。


    然后我们开启我们的慢查询日志:


    set global slow_query_log = on;

    0?</p><p>wx_fmt=png

    ok,到了这一步我们的慢查询日志就已经开启了。


    ok我这有一个数据库,给大家到时候装上就能够了,首先看一下world数据库:

    0?</p><p>wx_fmt=png

    ok,一共三张表。我们随便写一个sql语句:


    select * from country limit 20;


    0?wx_fmt=png

    好了,我们如今来查看一下我们的慢查询日志。

    tail -20  /data/mysql/iZm5ec880z2roqZ-slow.log


    0?</p><p>wx_fmt=png

    ok。日志中已经生成了我们刚才写的sql操作的日志,日志中包含了,sql运行的主机信息,sql运行的时间,sql运行的内容,sql运行的信息等。


    我们接下来就使用mysql的工具来分析慢查询日志。第一个就是mysqldumpslow

    0?wx_fmt=png

    然后我们使用命令:

    mysqldumpslow -t 3 慢查询日志路径 

    0?wx_fmt=png

            我们也能够使用工具pt-query-digest来分析慢查询日志。这个我明天把软件装上我们再讲,本来想一口气全讲完的,看了看东西还不少。所以我们就分为三部分吧,明天讲sql和索引的优化。后天是系统设置和硬件。一般硬件的配置除非你是专业的DBA不然没多大用处。了解一下就能够了。

  • 相关阅读:
    java位运算
    java笔试题(面试题)系列之一
    Java数据类型转换总结
    ++a和a++
    Java IO
    Java 并发
    Java位运算及补码存储
    Redis 5.0.0安装部署(伪集群版)
    Redis 安装(单机版)
    Dubbo源码分析系列之【服务暴露】
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/9914256.html
Copyright © 2020-2023  润新知