mysql分析慢查询日志步骤
[ 2018-07-13 14:48:08 | 作者: admin ]
方式一:通过工具分析
MySQL自带了mysqldumpslow工具用来分析slow query日志,除此之外,还有一些好用的开源工具。比如MyProfi(下载地址:http://sourceforge.net/projects/myprofi/)、mysql-log-filter,当然还有mysqlsla
以下是mysqldumpslow常用参数说明,详细的可应用mysqldumpslow -help查询。
-s,是表示按照何种方式排序,c、t、l、r分别是按照记录次数、时间、查询时间、返回的记录数来排序(从大到小),ac、at、al、ar表示相应的倒叙。
-t,是top n的意思,即为返回前面多少条数据。
-g,后边可以写一个正则匹配模式,大小写不敏感。
接下来就是用mysql自带的慢查询工具mysqldumpslow分析了(mysql的bin目录下),我这里的日志文件名字是host-slow.log。
...
阅读全文…
MySQL自带了mysqldumpslow工具用来分析slow query日志,除此之外,还有一些好用的开源工具。比如MyProfi(下载地址:http://sourceforge.net/projects/myprofi/)、mysql-log-filter,当然还有mysqlsla
以下是mysqldumpslow常用参数说明,详细的可应用mysqldumpslow -help查询。
-s,是表示按照何种方式排序,c、t、l、r分别是按照记录次数、时间、查询时间、返回的记录数来排序(从大到小),ac、at、al、ar表示相应的倒叙。
-t,是top n的意思,即为返回前面多少条数据。
-g,后边可以写一个正则匹配模式,大小写不敏感。
接下来就是用mysql自带的慢查询工具mysqldumpslow分析了(mysql的bin目录下),我这里的日志文件名字是host-slow.log。
...
阅读全文…
mysql不同版本开启慢查询 slow的方法记录,mysql5.0,mysql5.6
[ 2018-07-13 14:22:44 | 作者: admin ]
其实想要执行一次有实际意义的慢查询比较困难,因为在自己测试的时候,就算查询有20万条数据的海量表,也只需要0.几秒。我们可以通过如下语句代替:
通过如下sql语句,来查看一共执行过几次慢查询:
show global status like '%slow%';
mysql5.0和mysql5.1版本,记录慢查询日志
mysql5.5和mysql5.6版本,记录慢查询日志
阅读全文…
SELECT SLEEP(10);
然后查看慢查询的数量通过如下sql语句,来查看一共执行过几次慢查询:
show global status like '%slow%';
mysql5.0和mysql5.1版本,记录慢查询日志
log-slow-queries="D:/Program Files/MySQL/mysql5.6/logs/mysql-slow.log"
long_query_time =2
long_query_time =2
mysql5.5和mysql5.6版本,记录慢查询日志
#log_queries_not_using_indexes=1
...阅读全文…
错误:You can't specify target table 'xxx' for update in FROM clause的解决
[ 2017-11-04 10:36:55 | 作者: admin ]
问题:
今天在MySQL数据库删除重复数据的时候遇到了一个问题。如下脚本:
会出现报错信息:
You can't specify target table 'tempA' for update in FROM clause
大致意思是,在同一语句中,不能先select出同一表中的某些值,再update这个表。
解决方法:
需要对上述脚本进行改造,如下:
阅读全文…
今天在MySQL数据库删除重复数据的时候遇到了一个问题。如下脚本:
DELETE FROM tempA WHERE tid IN (
SELECT MAX(tid) AS tid FROM tempA GROUP BY name,age
)
SELECT MAX(tid) AS tid FROM tempA GROUP BY name,age
)
会出现报错信息:
You can't specify target table 'tempA' for update in FROM clause
大致意思是,在同一语句中,不能先select出同一表中的某些值,再update这个表。
解决方法:
需要对上述脚本进行改造,如下:
DELETE FROM tempA WHERE tid NOT IN (
SELECT t.tid FROM (
SELECT MAX(tid) AS tid FROM tempA GROUP BY name,age
...SELECT t.tid FROM (
SELECT MAX(tid) AS tid FROM tempA GROUP BY name,age
阅读全文…
mysql 5.6.30 开启慢查询日志的方法,和老版本不同
[ 2017-08-23 09:46:08 | 作者: admin ]
1,修改配置文件(需重启mysqld服务):
【windows】开启所有日志
【linux】开启慢查询
[root@localhost app]# cat /etc/my.cnf
...
阅读全文…
【windows】开启所有日志
log-error="D:/Program Files/MySQL/MySQL Server 5.6/logs/error.log"
general-log=1
general-log-file="D:/Program Files/MySQL/MySQL Server 5.6/logs/query.log"
slow_query_log=on
slow_query_log_file="D:/Program Files/MySQL/MySQL Server 5.6/logs/slow.log"
long_query_time=2
general-log=1
general-log-file="D:/Program Files/MySQL/MySQL Server 5.6/logs/query.log"
slow_query_log=on
slow_query_log_file="D:/Program Files/MySQL/MySQL Server 5.6/logs/slow.log"
long_query_time=2
【linux】开启慢查询
[root@localhost app]# cat /etc/my.cnf
...
阅读全文…
转:phpMyadmin 导入 出现“无法读取文件” 错误,解决办法
[ 2017-06-29 13:35:50 | 作者: admin ]
剔除网上提供的dos 命令的解决办法,在网上找到是因为phpmyadmin 没有找到合适的解决办法,于是在phpmyadmin 文件夹下建立,tmp 文件,然后给予 everyone 读写权限,问题解决
另外也可能是 PHP.ini 的配置问题,需要把safe_mode = off 改为 safe_mode = on
问题解决
另外也可能是 PHP.ini 的配置问题,需要把safe_mode = off 改为 safe_mode = on
问题解决
mysql中general_log(通用查询日志)关闭
[ 2017-06-23 09:00:34 | 作者: admin ]
通用查询日志--可以关闭
首先,进入mysql,输入
mysql> show global variables like '%general%';
+------------------+-----------------------+
| Variable_name | Value |
+------------------+-----------------------+
| general_log | ON |
| general_log_file | /opt/mysql/master.log |
+------------------+-----------------------+...
阅读全文…
首先,进入mysql,输入
mysql> show global variables like '%general%';
+------------------+-----------------------+
| Variable_name | Value |
+------------------+-----------------------+
| general_log | ON |
| general_log_file | /opt/mysql/master.log |
+------------------+-----------------------+
阅读全文…
MySQL按照汉字的拼音排序
[ 2017-06-16 10:41:34 | 作者: admin ]
按照汉字的拼音排序,用的比较多是在人名的排序中,按照姓氏的拼音字母,从A到Z排序;
如果存储姓名的字段采用的是GBK字符集,那就好办了,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字3755个采用拼音排序,二级汉字就不是了,但考虑到人名等都是常用汉字,因此只是针对一级汉字能正确排序也够用了)。
直接在查询语句后面 添加 order by name asc; 查询结果按照姓氏的升序排序;
如果存储姓名的字段采用的是 utf8字符集,需要在排序的时候对字段进行转码;对于的代码是 order by convert(name using gbk) asc; 同样,查询的结果也是按照姓氏的升序排序;
如果存储姓名的字段采用的是GBK字符集,那就好办了,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字3755个采用拼音排序,二级汉字就不是了,但考虑到人名等都是常用汉字,因此只是针对一级汉字能正确排序也够用了)。
直接在查询语句后面 添加 order by name asc; 查询结果按照姓氏的升序排序;
如果存储姓名的字段采用的是 utf8字符集,需要在排序的时候对字段进行转码;对于的代码是 order by convert(name using gbk) asc; 同样,查询的结果也是按照姓氏的升序排序;
win2003下面mysql5.6的安装问题
[ 2017-05-23 14:49:56 | 作者: admin ]
p.s. 考虑性能问题,一般并发高的服务器需要修改 max_connections 参数
在win2003需要直接安装解压版的mysql5.5和mysql5.6,如果提示“由于应用程序配置不正确,应用程序未能启动”,安装下必要的运行库,如vc++2008,vc++2010
将MySQL 添加到服务中
以管理员模式启动cmd,进入mysql安装路径:
删除mysql服务
mysql5.6的my.ini的样本如下
阅读全文…
在win2003需要直接安装解压版的mysql5.5和mysql5.6,如果提示“由于应用程序配置不正确,应用程序未能启动”,安装下必要的运行库,如vc++2008,vc++2010
将MySQL 添加到服务中
以管理员模式启动cmd,进入mysql安装路径:
mysqld --install MySQL --defaults-file="C:\Windows\my.ini"
删除mysql服务
mysqld –remove MySQL
mysql5.6的my.ini的样本如下
[client]
port=3306
default-character-set=utf8
[mysqld]
...port=3306
default-character-set=utf8
[mysqld]
阅读全文…