慢查询

首先,无论进行何种优化,开启慢查询都算是前置条件。慢查询机制,将记录过慢的查询语句(事件),从而为DB维护人员提供优化目标。

检查慢查询是否开启

通过show variables like 'slow_query_log'这条语句,可以找到慢查询的状态(On/Off)。

开启慢查询

本文使用的MySQL版本:MariaDB - 10.1.19,请注意,不同版本的MySQL存在差异。

在[mysqld]下加入:

[mysqld]
port= 3306 slow-query-log=1 # 慢查询:确认开启

slow-query-log-file="D:/xampp/mysql/log/mysql-slow.log" # 慢查询:日志文件及路径

long_query_time = 5 # 慢查询:指定超过5s仍未完成的语句,为执行过慢的语句

优化步骤

观察日志,锁定需要优化的目标语句。注意SQL的设置,譬如:SQL_NO_CACHE

关注复杂语句写法。复杂语句本身具备高自由度,再加上SQL语法的特殊性,导致了不同的写法的同功能复杂语句,可能具备云泥之别的效率。

明确应用场景,尽管我们在各种场合都有原则,但实际上,如果能够明确应用场景,我们能够针对当前情况,做出本地化的高效优化。

无法优化的语句,当我们通过上述两种方法,以及更多未被本文提及的优化方法之后,可能还是会面对优化失败的情况。业务层面不做出修正的话,数据层面的确是无力可使。

结语

当打出“无法优化”的时候,不禁想到了我所喜爱的游戏设计行业。

如果你了解一二,就会发现,游戏设计中,其实有相当多的优秀设计,但大多数都困窘于当时当地的技术水平,而无法实现多彩纷呈的游戏设计。

也还记得去年做UI的朋友跟我吐槽:我就怕我设计的出来,很炫酷或者很人文,可前端根本实现不了那种设计。

简单谈谈MySQL优化利器-慢查询的更多相关文章

  1. Mysql优化_慢查询开启说明及Mysql慢查询分析工具mysqldumpslow用法讲解

    Mysql优化_慢查询开启说明及Mysql慢查询分析工具mysqldumpslow用法讲解   Mysql慢查询开启 Mysql的查询讯日志是Mysql提供的一种日志记录,它用来记录在Mysql中响应 ...

  2. 谈谈MySQL优化原理

    说起MySQL的查询优化,相信大家收藏了一堆奇淫技巧:不能使用SELECT *.不使用NULL字段.合理创建索引.为字段选择合适的数据类型..... 你是否真的理解这些优化技巧?是否理解其背后的工作原 ...

  3. mysql优化:慢查询分析、索引配置优化

    一.优化概述二.查询与索引优化分析a.性能瓶颈定位show命令慢查询日志explain分析查询profiling分析查询b.索引及查询优化三.配置优化 max_connections back_log ...

  4. Mysql 优化,慢查询

    最近项目上遇到点问题,服务器出现连接超时.上次也是超时,问题定位到mongodb上,那次我修改好了,这次发现应该不是这个的问题了. 初步怀疑是mysql这边出问题了,写的sql没经过压力测试,导致用户 ...

  5. Mysql优化之Explain查询计划查看

    我们经常说到mysql优化,优化中一种常见的方式就是对于经常查询的字段创建索引.那么mysql中有哪些索引类型呢? 一.索引分类1.普通索引:即一个索引只包含单个列,一个表可以有多个单列索引 2.唯一 ...

  6. mysql 优化2 慢查询

    默认情况下mysql不记录慢查询日志,需要在启动的时候指定 bin\mysqld.exe - -slow-query-log 通过慢查询日志定位执行效率较低的SQL语句.慢查询日志记录了所有执行时间超 ...

  7. Mysql优化系列之查询性能优化前篇3(必须知道的几个事实)

    事实一:临时表没有任何索引 最常见的临时表莫过于在from子句中写子查询,遇到这种情况,Mysql会先将其查询结果放到一张临时表中, 然后将这个临时表当做普通表对待 事实二:执行计划优化 大多数的sq ...

  8. Mysql优化系列之查询性能优化前篇2

    接前一篇,这一篇主要总结下几个经常要用的命令 命令一:explain+sql mysql> explain select * from servers; +----+-------------+ ...

  9. Mysql优化大分页查询

    如题,年前做了一个需求,涉及到Mysql大分页查询,整理一下,希望对需要的小伙伴有帮助. 背景分页查询的性能瓶颈B+树简述B+比起二叉查找树,有什么优势?分页查询过程测试集解决方法1 延迟关联法:2 ...

随机推荐

  1. Ajax json jquery实现菜单案例

    需求: 运用AJAX请求文件menu.json,配置菜单栏,并实现以下功能点: 1. 点击向左箭头,菜单向左移动,隐藏 2. 点击向右箭头,菜单向右移动,显示3. 点击一级菜单,被点击菜单的子菜单显示 ...

  2. XML概述

    本节要点: 标记语言的定义 XML简介 XML与HTML 比较 XML与数据库比较 XML的特点 XML结构 1          标记语言的定义 “XML.SGML.HTML”中的“ML”(Mark ...

  3. C#中的CollectionBase用法

    ColectionBase中有List方法,返回的是类本身 class A :CollectionBase { public void add(B b) { List.Add(b); } public ...

  4. redis代码解析-dictionary类型

    dict本质上是为了解决算法中的查找问题(Searching),一般查找问题的解法分为两个大类:一个是基于各种平衡树,一个是基于哈希表. redis中的dict传统的哈希算法类似,它采用某个哈希函数从 ...

  5. javascript——从「最被误解的语言」到「最流行的语言」

    JavaScript曾是"世界上最被误解的语言".由于它担负太多的特性.包含糟糕的交互和失败的设计,但随着Ajax的到来.JavaScript"从最受误解的编程语言演变为 ...

  6. zzulioj--1638--Happy Thanksgiving Day - Say 3Q I(水题)

    1638: Happy Thanksgiving Day - Say 3Q I Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 91  Solved: ...

  7. CaffeNet用于Flickr Style数据集上的风格识别

    转自 http://blog.csdn.net/liumaolincycle/article/details/48501423 微调是基于已经学习好的模型的,通过修改结构,从已学习好的模型权重中继续训 ...

  8. Exception异常常见属性

    废话少说,直接上代码: try { int n = Convert.ToInt32("@"); } catch(Exception ex) { Console.WriteLine( ...

  9. 在js在添版本号

    为了增加用户访问网站体验,快速打开网页,许多网站都对不常更新的js,css文件在浏览器端设置了缓存.但如果在服务器端做了更新,浏览器使用的仍是缓存在本地的js文件,除非强制清缓存(ctrl+F5).为 ...

  10. wampserver的安装及使用配置方法

    在安装wampserver的过程中,根据本人在安装过程中遇到的问题,在此做个总结,与小伙伴们分享一下下~~~. 1. 何处获得Wamp ★ 在自己的Windows电脑上Web服务器软件 - Wamp. ...