数据库优化_定位慢查询
一 修改数据库配置文件
方式一:
在etc下修改my.cnf数据库配置文件 ,在[mysqld] 节点下面加入如下配置
log_slow_queries = NO |
二 重启MySql服务
|
方式二: (先链接 mysql -u admin-p password)
方法二:通过修改myssql的全局变量来处理,这样做的好处是,不用重启mysql服务器,登陆到mysql上执行一下sql脚本即可 set global slow_query_log=ON; set global long_query_time=3; 然后通过一下命令查看是否成功
|
通过如下命令查看配置是否修改成功
show variables like '%slow%';
执行select sleep(3);
打开改文件查看是否记录select sleep(3); 的日志
语法:
show variables like'xxxx'; 固定写法
Like 后面加上想查询的字段
查看日志是否开启
show variables like 'log_slow_queries';
show variables like ‘slow_query_log_file’;
set @@global.slow_query_log = ON;
结果:
参考链接 http://www.linuxidc.com/Linux/2013-07/87457.htm
日志分析工具
mysql自带了一个查看慢日志的工具mysqldumpslow。 执行mysqldumpslow --h可以查看帮助信息。 主要介绍两个参数-s和-t -s 这个是排序参数,可选的有: al: 平均锁定时间 ar: 平均返回记录数 at: 平均查询时间 c: 计数 l: 锁定时间 r: 返回记录 t: 查询时间
-t n 显示头n条记录。 实例: mysqldumpslow -s c -t 20 host-slow.log mysqldumpslow -s r -t 20 host-slow.log 上述命令可以看出访问次数最多的20个sql语句和返回记录集最多的20个sql。 mysqldumpslow -t 10 -s t -g “left join” host-slow.log 这个是按照时间返回前10条里面含有左连接的sql语句。
|
参考链接 http://www.2cto.com/database/201306/222769.html
更多相关文章
- shell脚本中mysqldump的基本使用
- 使用Powershell对MySQL运行SQL脚本
- 在H2数据库中插入时间——函数“PARSEDATETIME”未找到
- 如何知道php脚本中的名称是指mysql表还是mysql视图
- 是一个mysql临时表,每个用户访问创建它的脚本是唯一的...?
- mysql启动脚本——指定数据目录并指定配置文件
- MySQL在保存数据时添加时间戳
- mysql查询一条工单时间需要10秒。优化sql语句得以解决。
- Spring Security ACL使用MySQL配置与数据库脚本