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

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

目的:

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

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

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

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

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

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

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

show variables like ‘slow_query_log’;

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

http://mmbiz.qpic.cn/mmbiz_png/Vib7BluqnchEI4Sx4qlgqhD5wL5njBxd4sKtTSVb5RCUFqoqsPnKpc9eQeM7aSOcdGj68qoQ0nsiacDfrcQImByQ/640?

wx_fmt=png&wxfrom=5&wx_lazy=1" style="visibility:visible !important;" alt="640?wx_fmt=png&wxfrom=5&wx_lazy=1" />

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

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

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

set global log_query_not_using_indexes = on;

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

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

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

set global slow_query_log = on;

wx_fmt=png" />

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

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

http://mmbiz.qpic.cn/mmbiz_png/Vib7BluqnchEI4Sx4qlgqhD5wL5njBxd4HmXJO9edwMVoWicaEmwI0H0o9B3hDL0UUnK5tlKeZePTibiaNxfZWZdUw/0?wx_fmt=png" alt="0?

wx_fmt=png" />

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

select * from country limit 20;

wx_fmt=png" alt="0?wx_fmt=png" />

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

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

wx_fmt=png" />

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

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

wx_fmt=png" alt="0?wx_fmt=png" />

然后我们使用命令:

mysqldumpslow -t 3 慢查询日志路径 

http://mmbiz.qpic.cn/mmbiz_png/Vib7BluqnchEI4Sx4qlgqhD5wL5njBxd44BiaeyMeHp4YD5srxtXEuIpCTIUPYYSx4f6fsiays8WW2D79c1WtYFYA/0?wx_fmt=png" alt="0?wx_fmt=png" />

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

【Mysql优化三章】第一章的更多相关文章

  1. MySQL优化三(InnoDB优化)

    body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-top: 10 ...

  2. 高性能MySQL(第4版) 第一章 MySQL架构 读书笔记

    这本书去年11月出的,今年中文版也出了,并且直接上了微信读书,之后有空就读一读,分享下读书笔记~ 原文内容比较充实,建议有时间可以读一下原文. 第一章主要是个概览. MySQL的逻辑架构 默认情况下, ...

  3. Java 线程第三版 第一章Thread导论、 第二章Thread的创建与管理读书笔记

    第一章 Thread导论 为何要用Thread ? 非堵塞I/O      I/O多路技术      轮询(polling)      信号 警告(Alarm)和定时器(Timer) 独立的任务(Ta ...

  4. Java 螺纹第三版 第一章Thread介绍、 第二章Thread创建和管理学习笔记

    第一章 Thread导论 为何要用Thread ? 非堵塞I/O      I/O多路技术      轮询(polling)      信号 警告(Alarm)和定时器(Timer) 独立的任务(Ta ...

  5. ASP.NET自定义控件组件开发 第一章 第三篇 第一章的完结篇

    ASP.NET自定义控件组件开发 第一章 第三篇   第三篇:第一章的完结篇 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ...

  6. ASP.NET自定义控件组件开发 第一章 第一章:从一个简单的控件谈起

    第一章:从一个简单的控件谈起 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ASP.NET自定义控件组件开发 第一章 第三 ...

  7. python全栈开放实践第三版第一章的练习题完成情况

    练习题: 1.简述编译型与解释型语言的区别,且分别列出你知道哪些语言属于编译型,哪些数以解释型.1 编译型:只须编译一次就可以把源代码编译成机器语言,后面的执行无须重新编译,直接使用之前的编译结果就可 ...

  8. Python 学习第三部分函数——第一章函数基础

    函数是python 为了代码最大程度的重用和最小代码冗余而提供的最基本的程序结构.使用它我们可以将复杂的系统分解为可管理的部件. 函数相关语句 def...          创建一个对象并将其赋值给 ...

  9. mysql挖掘与探索------第一章(简介)

    一.数据库简介: 1按照数据库发展时间,主要出现下面几个类型的数据库系统: a 网状型数据库 b 层次型数据库 c 关系型数据库 d 面向对象数据库 上面4中数据库系统中,关系型数据库使用最为广泛.面 ...

随机推荐

  1. 布式实时日志系统(三) 环境搭建之centos 6.4下hadoop 2.5.2完全分布式集群搭建最全资料

    最近公司业务数据量越来越大,以前的基于消息队列的日志系统越来越难以满足目前的业务量,表现为消息积压,日志延迟,日志存储日期过短,所以,我们开始着手要重新设计这块,业界已经有了比较成熟的流程,即基于流式 ...

  2. 关于 CommonJS AMD CMD UMD 规范的差异总结(转)

    根据CommonJS规范,一个单独的文件就是一个模块.每一个模块都是一个单独的作用域,也就是说,在一个文件定义的变量(还包括函数和类),都是私有的,对其他文件是不可见的. // foo.js var ...

  3. SharpGL学习笔记(八) 矩阵堆栈和变换的综合例子: 机器人

    我们先引入关于"矩阵堆栈"的官方说法: OpenGL的矩阵堆栈指的就是内存中专门用来存放矩阵数据的某块特殊区域.实际上,在创建.装入.相乘模型变换和投影变换矩阵时,都已用到堆栈操作 ...

  4. Android.mk(5) 计算怎么办?

    https://www.jianshu.com/p/57c01e97c9b8 计算怎么办? 前面我们把Makefile做为一门语言的主要特性大致做了一个描述,它集合了目标式的模式和函数式的模式,还有大 ...

  5. Cross-compilation using Clang

    Introduction This document will guide you in choosing the right Clang options for cross-compiling yo ...

  6. 如何使用Gradle的maven-publish将jar包或者war包上传到nexus仓库

    首先,在build.gradle里边声明依赖maven-publish插件: apply plugin: 'maven-publish' 然后,配置项目的信息和和nexus的信息: publishin ...

  7. C语言位操作初步

    位操作允许程序员对单独的位进行操作,例如,早某些机器上,短整型占16位,位操作将每一位单独操作. 位操作允许程序员设置.清除.测试与其他的操作,这些操作如下表: 操作 含义 & 按位与 | 按 ...

  8. 用AT命令调试调制解调器

    最早生产调制解调器的公司是贺氏,后来组建的厂家制造的调制解调器都与HAYES兼容,大部分的通信软件使用菜单来对调制解调器进行配置.检测.但是有些通信软件要求用户直接发命令给调制解调器,在这种情况下必须 ...

  9. 大规模Elasticsearch集群管理心得

    转载:http://elasticsearch.cn/article/110 ElasticSearch目前在互联网公司主要用于两种应用场景,其一是用于构建业务的搜索功能模块且多是垂直领域的搜索,数据 ...

  10. 分布式搜索elasticsearch几个概念解析

    原文链接:http://blog.csdn.net/july_2/article/details/24367177 介绍下es的几个概念:cluster     代表一个集群,集群中有多个节点,其中有 ...