免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: nixiltj
打印 上一主题 下一主题

请问如何查询mysql中执行效率低的sql语句? [复制链接]

论坛徽章:
0
31 [报告]
发表于 2006-04-04 16:23 |只看该作者
刚刚做完你这个试验,有点累,呵呵
long_query_time = N 这个参数,的确是下划线和中间横杠都可以。
试验结果手册上说的是对的,执行时间超过 N 秒的才会被记录到 xxxx-slow 日志文件中。

论坛徽章:
0
32 [报告]
发表于 2006-04-04 16:26 |只看该作者
原帖由 rardge 于 2006-4-4 16:23 发表
刚刚做完你这个试验,有点累,呵呵
long_query_time = N 这个参数,的确是下划线和中间横杠都可以。
试验结果手册上说的是对的,执行时间超过 N 秒的才会被记录到 xxxx-slow 日志文件中。

辛苦rardge兄弟了,不过,如上述,我觉得这个设置好像不管用,查询根本不到10秒,却也被纪录

论坛徽章:
0
33 [报告]
发表于 2006-04-04 16:29 |只看该作者
原帖由 xxjoyjn 于 2006-4-4 16:26 发表

辛苦rardge兄弟了,不过,如上述,我觉得这个设置好像不管用,查询根本不到10秒,却也被纪录

呵呵,所以我做了试验呀。结果是你那里肯定有问题了。我的结果就是少于N的不会记录。
妈的,最后一个试验我把时间调整到30秒,结果凑了一个SQL查询居然足足等了170秒。

论坛徽章:
0
34 [报告]
发表于 2006-04-04 16:45 |只看该作者
哈哈,兄弟你真搞笑
我也不知道我的问题在哪里,你能不能把你纪录日志和my.cnf给我看看?好让我比较一下
我的emailuxianjin@guoxinad.com.cn

论坛徽章:
0
35 [报告]
发表于 2006-04-04 16:50 |只看该作者
my.cnf 里面和 log 有关的就三行:
log-bin <--- 原来就有的,二进制日志。
log-slow-queries
long_query_time = 30

日志记录就是:
/usr/local/mysql/bin/mysqld, Version: 4.1.18-max-log. started with:
Tcp port: 3306  Unix socket: /tmp/mysql.sock
Time                 Id Command    Argument
# Time: 060404 16:25:01
# User@Host: root[root] @ localhost []
# Query_time: 174  Lock_time: 0  Rows_sent: 2227758  Rows_examined: 13
use test;
select * from a a1,a a2,a a3,a a4,a a5,b;

之前有很多少于30秒的查询没有被记录,比如 select * from a a1; 一直到 select * from a a1,a a2,a a3,a a4,a a5;

[ 本帖最后由 rardge 于 2006-4-4 16:51 编辑 ]

论坛徽章:
0
36 [报告]
发表于 2006-04-04 17:08 |只看该作者
我的my.cnf文件我是这样写的:
log-bin
log-slow-queries=/var/log/slowquery.log
long_query_time = 10
log-long-format
server-id       = 1


点击了几下页面,有关于数据库查询的页面,日志如下:
# Time: 060404 15:35:55
# User@Host: guoxin[guoxin] @ guoxin [127.0.0.1]
# Query_time: 0  Lock_time: 0  Rows_sent: 1  Rows_examined: 11
use guoxin;
select * from document where type='方案';
# Time: 060404 15:38:00
# User@Host: guoxin[guoxin] @ guoxin [127.0.0.1]
# Query_time: 0  Lock_time: 0  Rows_sent: 5  Rows_examined: 7
select * from product where type='硬件';
# Time: 060404 16:20:45
# User@Host: guoxin[guoxin] @ guoxin [127.0.0.1]
# Query_time: 0  Lock_time: 0  Rows_sent: 5  Rows_examined: 7
select * from product where type='硬件';
# Time: 060404 16:20:51
# User@Host: guoxin[guoxin] @ guoxin [127.0.0.1]
# Query_time: 0  Lock_time: 0  Rows_sent: 1  Rows_examined: 11
select * from document where type='方案';

我的时间设置是10秒,为什么日志里纪录的查询 Query_time: 0
不象你那个日志可以真实反映查询时间,我的怎么不行?

论坛徽章:
0
37 [报告]
发表于 2006-04-04 17:18 |只看该作者
兄弟,实在不好意思,我不懂了。我也就是今天看到你们这个帖子才开始测试这个内容的。

论坛徽章:
0
38 [报告]
发表于 2006-04-04 18:07 |只看该作者
怎么重新启动mysqld的?

论坛徽章:
0
39 [报告]
发表于 2006-04-04 18:24 |只看该作者
mysqladmin -u root -p shutdown //先关闭
mysqld_safe  --user=root &        //再启动

论坛徽章:
0
40 [报告]
发表于 2006-04-04 20:23 |只看该作者
原帖由 yejr 于 2006-4-4 18:07 发表
怎么重新启动mysqld的?


斑竹,可以赐教吗?
我是按照上面说的方法关闭和启动MSYQL的,
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP