记阿里Druid数据连接池引发的线上血案

记阿里Druid数据连接池引发的线上血案

前言碎语 事件起因:项目使用了activiti工作流,系统是由老的spring mvc项目改造成的spring boot项目,数据库链接池从dbcp切换到druid,新系统上线后,同事多次系统隔一段时间后数据查询就很慢,基本出不来。由此开始了线上bug排查之路。这个问题从一开始就模糊定位到数据库层面的问题,因为只有和数据相关的操作会很慢,其他服务不受影响,并且在中午休息时没有问题,在下午刚上班...

阅读全文 »

mysql日志binlog消费初体验

mysql日志binlog消费初体验

前言碎语 早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅消费的业务,产出了canal项目。canal的原理很简单,就是如上图片所示 canal模拟mysql slave的交互协议,伪...

阅读全文 »

mysql 连接异常Communications link failure

前言碎语 最近在监控线上日志时发现,时长会抛出如:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failureThe last packet successfully received from the server was 4,977,174 milliseconds ago. The last packet sent successfully to the server was 1 milliseconds ago 异常信息,通常见到如上异常,是因为应用使用了连接池管理连接,有些连接已经失效了,拿失效的连接去请求mysql导致的,这个就是经典的mysql八小...

阅读全文 »

SQL优化神器-SQLAdvisor

前言碎语 曾几何时,你为了一条sql效率寻遍互联网的每个角落,也许,你会读到这么一篇sql优化的文章 《MySQL索引原理及慢查询优化 》 ,然后你恍然大悟,sql索引还有一个叫 最左前缀匹配的原则,并不是一味的建索引就可以解决慢查询的问题。今天,有这样一个工具,在你还在思考如何最左前匹配的时候 ,他已经帮你解析快速分析出你的sql,并给出索引优化建议,是不是很nice,好...

阅读全文 »

读写分离--美团数据库中间件DBProxy

读写分离--美团数据库中间件DBProxy

前言碎语 好久没更博了,今天给大家分享一款数据库中间件- 美团DBProxy! 我们都知道,随着数据量的不断增大,传统的直连数据库对数据进行访问的方式已经无法满足一般公司的需求。相对于分库分表,通过数据库中间件,可以更简单轻松的对数据库进行水平扩展,由原来单台数据库扩展到多台数据库,数据库中间件通过路由规则将数据的访问请求路由到其中一台数据库上,从而大...

阅读全文 »

mysql函数大全

mysql函数大全

一、数学函数 ABS(x) 返回x的绝对值 BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x) 返回大于x的最小整数值 EXP(x) 返回值e(自然对数的底)的x次方 FLOOR(x) 返回小于x...

阅读全文 »

mysql 中 "非数字"=0 衡为true

mysql 中 "非数字"=0 衡为true...

阅读全文 »