备战京东双11-如何配置MySQL数据库超时设置
最近备战京东双11,在配置MySQL的超时配置发现有很多地方可以设置。这么多超时的配置有什么影响,以及配置会有什么影响呢?今天的文章就给大家分析一下。
1. JDBC超时设置
connectTimeout:表示等待和MySQL数据库建立socket链接的超时时间,默认值0,表示不设置超时,单位毫秒,建议30000
socketTimeout:表示客户端和MySQL数据库建立socket后,读写socket时的等待的超时时间,linux系统默认的socketTimeout为30分钟,可以不设置
2. 连接池超时设置
maxWait:表示从数据库连接池取链接,连接池没有可用连接时的等待时间,默认值0,表示无限等待,单位毫秒,建议60000
3. MyBatis查询超时
defaultStatementTimeout:表示在MyBatis配置文件中默认查询超时间,单位秒,不设置则无线等待
如果一些sql需要执行超过defaultStatementTimeout可以通过Mapper文件单独的sql的timeout进行配置
4. 事务超时
事务超时用于控制事务执行的超时,执行时间是事务内所有代码执行总和,单位为秒。
总结
高级别的timeout依赖于低级别的timeout,只有当低级别的timeout无误时,高级别的timeout才能确保正常。例如,当socket timeout出现问题时,高级别的statement timeout和transaction timeout都将失效。
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进行设置。不过现在开发者已经很少直接在代码中设置,而多是通过框架来进行设置。
在iBatis中,statement timeout的默认值可以通过sql-map-config.xml中的defaultStatementTimeout 属性进行设置。同时,你还可以设置sqlmap中select,insert,update标签的timeout属性,从而对不同sql语句的超时时间进行独立的配置。
3. Socket timeout
JDBC的socket timeout在数据库被突然停掉或是发生网络错误(由于设备故障等原因)时十分重要。由于TCP/IP的结构原因,socket没有办法探测到网络错误,因此应用也无法主动发现数据库连接断开。如果没有设置socket timeout的话,应用在数据库返回结果前会无期限地等下去,这种连接被称为dead connection。
为了避免dead connections,socket必须要有超时配置。socket timeout可以通过JDBC设置,socket timeout能够避免应用在发生网络错误时产生无休止等待的情况,缩短服务失效的时间。
不推荐使用socket timeout来限制statement的执行时长,因此socket timeout的值必须要高于statement timeout,否则,socket timeout将会先生效,这样statement timeout就变得毫无意义,也无法生效。
本文转载自 linkedkeeper.com (文/张松然)
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
火车票抢票代码公开揭秘
火车票抢票代码公开揭秘 市场上很多火车票抢票软件大家应该非常熟悉,但很少有人研究具体是怎么实现的,所以觉得很神秘,其实很简单。下面使用Python模拟抢票程序,给大家揭秘抢票到底是怎么回事。 该代码仅供参考,主要用于大家沟通交流,禁止用于商业用途。 具体代码如下,可以修改成自己的12306用户名账号: #-*-coding:utf-8-*- """ @author:liuyw """ fromsplinter.browserimportBrowser fromtimeimportsleep importtraceback importtime,sys classhuoche(object): """docstringforhuoche""" driver_name='' executable_path='' #用户名,密码 username=u"xxx@qq.com" passwd=u"xxxx" #cookies值得自己去找,下面两个分别是上海,太原南 starts=u"%u4E0A%u6D77%2CSHH" ends=u"%u592A%u539F%2CTYV" #时间格式2018-...
- 下一篇
拨粽思乡,踏实学习;食粽遥思,玩转端午
说起端午,你会想起 当年和家人一起围坐在饭桌上吃的粽子 虽然今年没有家人的陪伴,但莫慌,你是否感受到来同事朋友们一道道炽热的激光,以及龙果学院的关怀? 今年虽有同事朋友们的陪伴,但一定不要忘记给家人打个电话。 即使隔着电话,也是一种团圆 说到端午,就像过年“北方饺子,南方汤圆”一样,不同地方都有不同的端午美食 首当其冲的当然就是粽子啦 粽子 又叫“角黍”、“筒粽” 四川的辣粽,因为有花椒,不习惯的人估计被呛到眼泪都出来 嘉兴的粽子,粽中极品,就像一瓶被打破的香水,馥郁香气,肆意弥漫 潮汕的粽子,料放的十足,猪肉、香菇、咸蛋黄、虾米、豆沙······好像什么都可以包进去,咸甜交加,味道很复杂 肇庆的裹蒸粽,个大,一个就有一斤重,去皮绿豆裹着五花肉做馅儿,伴着酱油吃,味道也是别具一番风味 真要去比较那个地方的粽子最好吃,实在很难。口味不同,习俗不同,自然不能一概而论 当然,外面的粽再怎么好吃也比不上小时候姥姥亲手包的家乡粽有味道,那是一种家的味道 离家多年,走南闯北,端午节已经很少在家乡过,往往在什么地方就吃当地的粽子来应应节,姥姥包的粽子香气也已经渐渐淡忘 当然还有一些省市,除了粽子还要...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker快速安装Oracle11G,搭建oracle11g学习环境