慢查询日志里大量只有“commit”,没有查询语句,怎么回事??

nutpp 2015-08-31 10:30:35
像这样:
# Query_time: 1.310542 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 0
use data_xxx;
SET timestamp=1441008434;
commit;
...全文
684 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
rick-he 2015-09-21
  • 打赏
  • 举报
回复
引用 8 楼 yupeigu 的回复:
[quote=引用 7 楼 mchdba 的回复:] [quote=引用 5 楼 yupeigu 的回复:] 另外,我看你的 # Query_time: 1.310542 也就是,你设置的 long_query_time 可能是1秒,这个有必要吗? 如果你运行了好多语句,虽然每条数据都很快,但是在最后commit的时候,由于是大批量数据的提交,就会导致commit很慢,就会被记录下来
不知道你的应用是什么行业,其实很有必要的,在互联网电商领域,long_query_time 这个值一般都是1秒,甚至为了查问题,优化首页,long_query_time 这个值还可以设置成0.3秒的。[/quote] 我这里主要是查询较多,数据量较大,一般只要在3分钟以内就可以了。 之前帮同时看语句,查询大概10条数据,大涉及到多表关联和复杂的条件,原来大概1秒多,后来降到0.006秒,oracle的cost从3099降到136. 所以,你说的对,不同应用领域要求会不一样,但实际上 只要是返回少量数据,查询速度应该就能优化到极快的程度,如果是数据量较大几千,几万,也可以优化,但可能不会优化到1秒的程度。[/quote] 是的,不同的应用环境,不同的需求方式,没有一定的准则
  • 打赏
  • 举报
回复
引用 7 楼 mchdba 的回复:
[quote=引用 5 楼 yupeigu 的回复:] 另外,我看你的 # Query_time: 1.310542 也就是,你设置的 long_query_time 可能是1秒,这个有必要吗? 如果你运行了好多语句,虽然每条数据都很快,但是在最后commit的时候,由于是大批量数据的提交,就会导致commit很慢,就会被记录下来
不知道你的应用是什么行业,其实很有必要的,在互联网电商领域,long_query_time 这个值一般都是1秒,甚至为了查问题,优化首页,long_query_time 这个值还可以设置成0.3秒的。[/quote] 我这里主要是查询较多,数据量较大,一般只要在3分钟以内就可以了。 之前帮同时看语句,查询大概10条数据,大涉及到多表关联和复杂的条件,原来大概1秒多,后来降到0.006秒,oracle的cost从3099降到136. 所以,你说的对,不同应用领域要求会不一样,但实际上 只要是返回少量数据,查询速度应该就能优化到极快的程度,如果是数据量较大几千,几万,也可以优化,但可能不会优化到1秒的程度。
九月茅桃 2015-09-21
  • 打赏
  • 举报
回复
引用 5 楼 yupeigu 的回复:
另外,我看你的 # Query_time: 1.310542 也就是,你设置的 long_query_time 可能是1秒,这个有必要吗? 如果你运行了好多语句,虽然每条数据都很快,但是在最后commit的时候,由于是大批量数据的提交,就会导致commit很慢,就会被记录下来
不知道你的应用是什么行业,其实很有必要的,在互联网电商领域,long_query_time 这个值一般都是1秒,甚至为了查问题,优化首页,long_query_time 这个值还可以设置成0.3秒的。
  • 打赏
  • 举报
回复
我觉得,楼主可以修改一下参数设置,我的是mysql默认的是10秒,然后设置为3秒:
mysql> show variables like '%long_query_time%';
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.01 sec)

mysql> set global long_query_time = 3;
Query OK, 0 rows affected (0.04 sec)

mysql> select @@global.long_query_time;
+--------------------------+
| @@global.long_query_time |
+--------------------------+
|                 3.000000 |
+--------------------------+
1 row in set (0.02 sec)

mysql>
  • 打赏
  • 举报
回复
另外,我看你的 # Query_time: 1.310542 也就是,你设置的 long_query_time 可能是1秒,这个有必要吗? 如果你运行了好多语句,虽然每条数据都很快,但是在最后commit的时候,由于是大批量数据的提交,就会导致commit很慢,就会被记录下来
  • 打赏
  • 举报
回复
这是我机器上的慢日志:
C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld.exe, Version: 5.6.25-log (MySQL Community Server (GPL)). started with:
TCP Port: 3306, Named Pipe: (null)
Time                 Id Command    Argument
# Time: 150825 15:57:07
# User@Host: root[root] @  [192.168.100.50]  Id:    62
# Query_time: 101.961779  Lock_time: 0.000000 Rows_sent: 0  Rows_examined: 6479872
use world;
SET timestamp=1440489427;
update tb set idd = id;
# Time: 150825 15:58:41
# User@Host: root[root] @  [192.168.100.50]  Id:    62
# Query_time: 48.266485  Lock_time: 0.000000 Rows_sent: 0  Rows_examined: 6479872
SET timestamp=1440489521;
update tb set idd = id;
# Time: 150825 16:00:00
# User@Host: root[root] @  [192.168.100.50]  Id:    62
# Query_time: 54.506496  Lock_time: 0.000000 Rows_sent: 0  Rows_examined: 6479872
SET timestamp=1440489600;
update tb set idd = id;
# Time: 150825 16:01:57
# User@Host: root[root] @  [192.168.100.50]  Id:    65
# Query_time: 38.110867  Lock_time: 0.000000 Rows_sent: 501  Rows_examined: 6479872
SET timestamp=1440489717;
select * from tb where idd >= 1000 and idd <= 1500;
rucypli 2015-09-02
  • 打赏
  • 举报
回复
通过binlog找到commit的时候是对哪些DML语句commit的
rick-he 2015-09-01
  • 打赏
  • 举报
回复
你的慢查询时间是多久?应该是1s吧,好像是提交耗费时间。 你是一下子提交还是一条条提交

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧