作家
登录

如何配置MySQL数据库超时设置

作者: 来源: 2017-10-26 06:19:22 阅读 我要评论

JDBC的socket timeout在数据库被忽然停掉落或是产生收集缺点(因为设备故障等原因)时十分重要。因为TCP/IP的构造原因,socket没有办法探测到收集缺点,是以应用也无法主动发明数据库连接断开。如不雅没有设置socket timeout的话,应用在数据库返回结不雅前会无刻日地等下去,这种连接被称为dead connection。

沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散!


若何设备MySQL数据库超时设置

比来备战京东双11,在设备MySQL的超时设备发明有很多处所可以设置。这么多超时的设备有什么竽暌拱响,以及设备会有什么竽暌拱响呢?今天的文┞仿就让我来大年夜家来分析一下。

1. JDBC超时设置

connectTimeout:表示等待和MySQL数据库建立socket链接的超不时光,默认值0,表示不设置超时,单位毫秒,建议30000

socketTimeout:表示客户端和MySQL数据库建立socket后,读写socket时的等待的超不时光,linux体系默认的socketTimeout为30分钟,可以不设置

2. 连接池超时设置

maxWait:表示大年夜数据库连接池取链接,连接池没有可用连接时的等待时光,默认值0,表示无穷等待,单位毫秒,建议60000

3. MyBatis萌芽超时

【编辑推荐】

  1. ECharts, PHP, MySQL, Ajax, JQuery实现前后端数据可视化
  2. 分布式数据库数据一致性道理解释与实现
  3. 若何大年夜MongoDB迁徙到MySQL?这有现成经验!
  4. 硬件是若何影响数据库的成长
  5. 谷歌推出视频数据库“AVA”,中国联通与腾讯合作共建云数据中间
【义务编辑:赵宁宁 TEL:(010)68476606】

defaultStatementTimeout:表示在MyBatis设备文件中默扰绫侨芽超时光,单位秒,不设置则无线等待

如不雅一些sql须要履行跨越defaultStatementTimeout可以经由过程Mapper文件零丁的sql的timeout进行设备

MyBatis萌芽超时

4. 事务超时

事务超时用于控制事务履行的超时,履行时光是事务内所有代码履行总和,单位为秒。

事务超时

总结

高等其余timeout依附于初级其余timeout,只有当初级其余timeout无误时,高等其余timeout才能确保正常。例如,当socket timeout出现问题时,高等其余statement timeout和transaction timeout都将掉效。

在iBatis中,statement timeout的默认值可以经由过程sql-map-config.xml中的defaultStatementTimeout 属性进行设置。同时,你还可以设置sqlmap中select,insert,update标签的timeout属性,大年夜而对不合sql语句的超不时光进行自力的设备。

1. Transaction Timeout

Spring供给的transaction timeout设备异常简单,它会记录每个事务的开端时光和消费时光,当特定的事宜产生时就会对消费时光做校验,当超出timeout值时将抛出异常。

假设某个事务中包含5个statement,每个statement的履行时光是200ms,其他营业逻辑的履行时光是100ms,那么transaction timeout至少应当设置为1,100ms(200 * 5 + 100)。

2. Statement Timeout

statement timeout用来限制statement的履行时长,timeout的值经由过程调用JDBC的java.sql.Statement.setQueryTimeout(int timeout) API进行设置。不过如今开辟者已经很少直接在代码中设置,而多是经由过程框架来进行设置。

3. Socket timeout

为了避免dead connections,socket必须要有超时设备。socket timeout可以经由过程JDBC设置,socket timeout可以或许避免应用在产生收集缺点时产生无休止等待的情况,缩短办事掉效的时光。

不推荐应用socket timeout来限制statement的履行时长,是以socket timeout的值必须要高于statement timeout,不然,socket timeout将会师长教师效,如许statement timeout就变得毫无意义,也无法生效。



  推荐阅读

  云计算的下一个风口:无服务器计算将会很快迎来爆发

沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散! 采取无办事器计算技巧有几个明显的优势: 敏捷——因为开辟人员在应用办事器时不安排、治理或>>>详细阅读


本文标题:如何配置MySQL数据库超时设置

地址:http://www.17bianji.com/lsqh/38213.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)