0%

Show Profile是mysql提供的可以用来分析当前会话中sql语句执行的资源消耗情况的工具,可用于sql调优的测量。默认情况下处于关闭状态,并保存最近15次的运行结果。 通过show profiles查看sql语句的耗时时间,然后通过show profile命令对耗时时间长的sql语句进行诊断 。注意show profile诊断结果中出现相关字段的含义,判断是否需要优化sql语句

putty这个软件是个轻量且好用的ssh工具,Xshell、Xftp这些需要收费,有学生家庭版但是要申请,而且有一定的期限的,不是很方便。putty这个工具倒是不错,可是每次登陆需要输入密码,于是下面挤在一个无需登录密码的方式,那就是SSH密钥登录, 这种方式需要生成一组对应的公钥和密钥,然后把公钥放到Linux,私钥提供给putty。putty仍然不知道你的密码,而是通过与服务器核对密钥而核实身份。

慢查询日志

什么是慢查询日志

MySQL的慢查询日志是 MySQL提供的一种日志记录,它用来记录在 MySQL 中响应时间超过阀值的语句,具体指运行时间超过long_query_time 值的 SQL,则会被记录到慢查询日志中

具体指运行时间超过 long_query_time 值的 SQL,则会被记录到慢查询日志中。long_query_time 的默认值为 10, 意思是运行 10 秒以上的语句

由它来查看哪些 SQL 超出了我们的最大忍耐时间值,比如一条SQL执行超过 5 秒钟,我们就算慢 SQL,希望能收集超过 5 秒的SQL,结合之前explain进行全面分析

默认情况下,MySQL 数据库没有开启慢査询日志,需要我们手动来设置这个参数。当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。慢査询日志支持将日志记录写入文件!

如何开启慢查询

查看开启状态

SHOW VARIABLES LIKE '%slow_query_log%'

开启慢查询

set global slow_query_log = 1

使用 set global_slow_query_log = 1 开启了慢查询日志只对当前数据库生,如果 MYSQL 重启后则会失效。

如果要永久生效,就必须修改配置文件 my.cnf(其它系统变量也是如此)修改 my.cnf 文件,[mysqld]下增加或修改参数

slow_query_log 和 slow_query_log_file 后,然后重启 MySQL 服务器。也即将如下两行配置进my.cnf文件

slow_query_log =1

slow_query_log_file=/var/lib/mysql/tim-slow.log

关于慢查询的参数 slow_query_log_fie,它指定慢查询日志文件的存放路径,系统默认会给一个缺省的文件host_name-slow.log(如果没有指定参数 slow_query_log_file的话)

性能常见分析步骤

1、慢查询的开启并捕获

2、explain+慢 SQL 分析

3、show profile 查询 SQL 在 MySQL 服务器里面的执行细节和生命周期情况

4、SQL数据库服务器的参数调优。

这篇文章呢,其实也没必要非得用Markdown写,但是用习惯了哈,没办法都改不了。差点跑题,今天谈谈今年这几次比赛的心得体会之类的吧。

其实我也是看见了队友的感言,现在只能看到他之前的博客备份了。今天是2019的10月份,转眼就到2020年了。其实也就当时回顾了一下自己上半年的成长吧,算是一份小小的总结。比赛是从去年冬天开始筹划的吧,不能算是筹划(应该是去年冬天听说的有这个比赛,其实就是服务外包大赛)。今年上半年开始着手准备选题,记得是3-4月份期间的选的题目。然后就选了 “智慧教室“ 这个项目,当时我和其中一个队友判断这个题目稍微简单一点,其实就是Android+、JavaEE+前端、Python控制的硬件端,比赛之前就认识两个队友:村支书和大力,其他两个队友是最后才接触了才认识的。

最好是查找的值都是建立索引的字段,要遵守最佳左前缀匹配法则,第一个索引没用上其他的都用不上,中间的索引没用上后面的也用不上。索引字段不要函数计算、自动或手动的类型转换。凡是在范围条件之后的索引全部失效,like的百分号写在最后边,实在是需要两边都是百分号那么建立索引,并且别查找其他非索引字段,也就是尽量别写select * 。尽量不使用不等于、大于、小于等条件,尽量不要使用or进行连接,否则会导致索引失效。对于varchar类型的字段不要忘记写引号,避免发生隐式类型转换。