大部分时间是正常的,但偶尔会出现 mysql 连不上、查询超时的问题,系统是 windows ,可以有偿帮忙解决问题,企鹅 MjEyNTcwNTM0MA==
1
ixiaohei 2017-02-13 23:43:21 +08:00
查询超时?这个是慢 sql 么?如果是网络抓包就能分析出来了
|
2
yuyuyu OP @ixiaohei 确实有慢 SQL ,已经在优化了,但是慢 SQL 会导致 MYSQL 连接都连接不上吗?另外我也不知道这个慢 SQL 是不是真正的罪魁祸首,因为有可能是其他的慢 SQL 导致了表锁什么的然后才会有后面的慢 SQL ?
|
3
ixiaohei 2017-02-13 23:57:24 +08:00
慢 SQL 会导致超时异常。如果是 java 一般是 SQLTimeoutException 这种异常。其他的语言也会类似。看你连接池或者链接超时时间设置的是多少。慢 sql 很好优化的,看执行计划就行,最头痛的就是有时候走索引,有时候不走,这时候建议 hint 。
|
4
yuyuyu OP @ixiaohei 我现在直接执行慢 sql 语句又很快,这是慢 SQL 语句:
# User@Host: root[root] @ [x.x.x.x] Id: 223 # Query_time: 12.136800 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 1 SET timestamp=xxxx; SELECT `Extent1`.`ID`, `Extent1`.`Email`, `Extent1`.`Password`, `Extent1`.`Start`, `Extent1`.`End`, `Extent1`.`Register` FROM `userinfo` AS `Extent1` WHERE `Extent1`.`ID` = 1; 这是执行计划: # id, select_type, table, type, possible_keys, key, key_len, ref, rows, Extra '1', 'SIMPLE', 'Extent1', 'const', 'PRIMARY,ID_UNIQUE', 'PRIMARY', '4', 'const', '1', NULL |
5
yuyuyu OP 好吧,我有一个表是空的表,一条数据都没有,居然也在慢 SQL 记录里面找到了对这个表的查询有 19 秒……感觉出现这种问题的时候,整个 mysql 所有的表查询都会超时或者很慢很慢……是不是 mysql 哪里配置或者和 windows 有兼容性问题? mysql 版本是 5.6.19 , win2008r2
|
6
yuyuyu OP 我愿意支付 1000 元酬劳帮忙解决问题
|
7
ixiaohei 2017-02-14 19:36:34 +08:00
建议换 linux 服务器试试。把数据导过来就行了。以前在 windows server 上跑几年的 mysql 也没有出现过问题。估计可能你的应用程序有问题
|
8
yuyuyu OP @ixiaohei 就是因为不熟 linux 才弄的 windows ,生产环境 linux 出问题不懂要死人的……不应该是应用程序的问题,我建了一个最简单只包含 select count(0) from xxx 的程序,在服务器上每隔 1 分钟执行一次这条 SQL ,当出现问题的时候,这个应用程序也会报查询超时错误,实在不知道什么原因折腾了很久,所以愿意花钱找人帮忙, 1000 不够就 2000 !
|
9
ixiaohei 2017-02-14 20:55:40 +08:00
那我感觉你还是有慢查询了,占用完 cpu 线程了,后面的阻塞超时了?
|
11
ixiaohei 2017-02-14 23:01:20 +08:00
建议你监控 mysql 的 cpu , io 这些东西,网上搜 mysql 慢查询,能找到很多解决的方法的。
|